Proguard не добавляет запутанные классы в jar при весенней загрузкеJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Proguard не добавляет запутанные классы в jar при весенней загрузке

Сообщение Anonymous »

Я пытаюсь запутать jar для своего приложения.
Я использую Spring Boot 3.2.5 и Java 21.
Оба jar-файла создаются, начальный и запутанный, но запутанный не содержит классов из моих пакетов приложений.
Это моя конфигурация proguard:

Код: Выделить всё

# Obfuscation settings
-useuniqueclassmembernames
-classobfuscationdictionary obfuscation-dictionary.txt
-packageobfuscationdictionary obfuscation-dictionary.txt

# General options
-verbose
-dontoptimize
-dontshrink
-dontpreverify
-allowaccessmodification
-adaptclassstrings
-keepdirectories
-ignorewarnings

# Keep annotations
-keepattributes *Annotation*
-keepattributes Signature
-keepattributes Exceptions

# Keep main classes
-keep public class * extends    org.springframework.boot.web.support.SpringBootServletInitializer
-keep public class com.my.package.Application {
public static void main(java.lang.String[]);
}

-keep,allowobfuscation class com.my.package.Application.** { *; }
-keep interface com.my.package.** { *; }

-keepclasseswithmembers public class * {
public static void main(java.lang.String[]);
}

# If you use Lombok, you might need this
-keep class lombok.** { *; }
-dontwarn lombok.**
-keepclassmembers class * {
@lombok.Setter *;
@lombok.Getter *;
@lombok.Cleanup *;
@lombok.ToString *;
@lombok.EqualsAndHashCode *;
@lombok.AllArgsConstructor *;
@lombok.NoArgsConstructor *;
@lombok.Builder *;
}

# Keep all classes in specific packages
-keep class my.package.** { *; }
-keep class org.springframework.boot.** { *; }
-keep class org.springframework.boot.loader.** { *; }
-dontwarn org.springframework.boot.loader.**

# Keep Spring Boot specific classes
-keep class org.springframework.boot.loader.jar.** { *; }
-keep class org.springframework.boot.loader.zip.** { *; }
-keep class java.util.jar.JarFile { *; }

# Keep ZIP related classes
-keep class java.util.zip.** { *; }
-dontwarn java.util.zip.**

# Keep all subclasses of InputStream
-keep class * extends java.io.InputStream { *; }
-keep class * extends java.util.zip.InflaterInputStream { *; }

# Keep specific classes and their inner classes
-keep class org.springframework.boot.loader.jar.NestedJarFile { *; }
-keep class org.springframework.boot.loader.jar.NestedJarFile$* { *; }
-keep class org.springframework.boot.loader.jar.ZipInflaterInputStream { *; }
-keep class org.springframework.boot.loader.zip.ZipContent$Entry { *;  }

# Keep specific methods and fields
-keepclassmembers class * {
@org.springframework.beans.factory.annotation.Autowired *;
@org.springframework.beans.factory.annotation.Qualifier *;
@org.springframework.beans.factory.annotation.Value *;
@org.springframework.beans.factory.annotation.Required *;
@org.springframework.context.annotation.Bean *;
@org.springframework.context.annotation.Primary *;
@org.springframework.boot.context.properties.ConfigurationProperties *;
@org.springframework.boot.context.properties.EnableConfigurationProperties *;
@javax.inject.Inject *;
@javax.annotation.PostConstruct *;
@javax.annotation.PreDestroy *;
@org.springframework.security.access.prepost.PreAuthorize *;
}

# Keep enums
-keepclassmembers enum * {
*;
}

# Keep Serializable classes
-keepnames class * implements java.io.Serializable
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient ;
!private ;
!private ;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}

# Keep getters and setters
-keepclassmembers class * {
*** get*();
void set*(***);
}

# Keep specific annotations
-keep @org.springframework.cache.annotation.EnableCaching class *
-keep @org.springframework.context.annotation.Configuration class *
-keep @org.springframework.boot.context.properties.ConfigurationProperties class *
-keep @org.springframework.boot.autoconfigure.SpringBootApplication class *

# Keep specific directories
-keepdirectories org.springframework.boot.autoconfigure
Это конфигурация моего плагина:

Код: Выделить всё

org.springframework.boot
spring-boot-maven-plugin
3.2.5


repackage
package

repackage


com.my.package.Application





com.github.wvengen
proguard-maven-plugin
2.6.1


package

proguard




7.3.2
${project.build.finalName}.jar
${project.build.finalName}-obfuscated.jar
true
${project.basedir}/proguard.cfg

${java.home}/lib/jrt-fs.jar


-verbose




com.guardsquare
proguard-base
7.3.2



Буду признателен за небольшую помощь.
Спасибо!
Я попробовал отладку, у меня получилось журналы

Код: Выделить всё

 [proguard]   Number of obfuscated classes:                  41
[proguard]   Number of obfuscated fields:                   196
[proguard]   Number of obfuscated methods:                  121
Я вижу, что мои классы запутаны в файле proguard_map.txt, но их нет в окончательном запутанном jar-файле.
Это может быть что-то в файле proguard_map.txt упаковка или заказ упаковки, но я не могу разобраться.

Подробнее здесь: https://stackoverflow.com/questions/791 ... pring-boot
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»