Obfuscate library project

本文介绍如何在主工程中配置ProGuard来混淆LibraryProject,提供多个参考资料链接帮助理解具体操作步骤。
对library project的混淆需要在主工程的混淆配置文件中设置
参考:https://stackoverflow.com/questions/10982344/is-proguard-cfg-needed-for-library-projects#10992604
https://stackoverflow.com/questions/8088958/how-to-obfuscate-an-android-library-jar-file-using-proguard-in-eclipse
https://www.guardsquare.com/en/proguard/manual/introduction
<plugin> <groupId>com.github.wvengen</groupId> <artifactId>proguard-maven-plugin</artifactId> <version>2.7.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>proguard</goal> </goals> </execution> </executions> <configuration> <injar>${project.build.finalName}.jar</injar> <outjar>${project.build.finalName}-obfuscated.jar</outjar> <putLibraryJarsInTempDir>true</putLibraryJarsInTempDir> <!-- 恢复库路径配置 --> <libraryjars> <!-- JDK 核心库 --> <libraryjar>${java.home}/lib/rt.jar</libraryjar> <libraryjar>${java.home}/jmods/java.base.jmod(!**.jar;!module-info.class)</libraryjar> <!-- Spring Boot Loader --> <libraryjar>${org.springframework.boot:spring-boot-loader:jar}</libraryjar> </libraryjars><obfuscate>true</obfuscate> <options> <option>-dontoptimize</option> <option>-ignorewarnings</option> <!-- 增强Spring Boot Loader保留规则 --> <option>-keep class org.springframework.boot.loader.** { *; }</option> <option>-keep class org.springframework.boot.loader.jar.** { *; }</option> <option>-keep class org.springframework.boot.loader.launcher.** { *; }</option> <option>-keep class org.springframework.boot.loader.util.** { *; }</option> <!-- 保留IO和Zip相关类 --> <option>-keep class java.io.** { *; }</option> <option>-keep class java.util.zip.** { *; }</option> <!-- 保留主启动类 --> <option>-keep class com.jeeplus.JeeplusWebApplication { public static void main(java.lang.String[]); }</option> <!-- 其他保留规则保持不变 --> <option>-keep class com.jeeplus.ureport.** { *; }</option> <option>-keep class com.bstek.ureport.** { *; }</option> <option>-keepattributes *Annotation*,EnclosingMethod,Signature</option> <option>-keep @org.springframework.stereotype.** class * { *; }</option> <option>-keep @org.springframework.context.annotation.** class * { *; }</option> <option>-keep @org.springframework.context.annotation.Configuration class * { *; }</option> <option>-keep @org.springframework.boot.autoconfigure.SpringBootApplication class * { *; }</option> <option>-keep @org.springframework.web.bind.annotation.** class * { *; }</option> <option>-keepclassmembers class * { @org.springframework.beans.factory.annotation.Autowired *; @org.springframework.beans.factory.annotation.Value *; @org.springframework.context.annotation.Bean *; @org.springframework.web.bind.annotation.* *; }</option> <option>-keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); }</option> <option>-keepclassmembers class * { public static ** getResource(java.lang.String); public static ** getResourceAsStream(java.lang.String); }</option> </options> </configuration> </plugin>
09-17
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值