IDEA JDK1.8 ProGuard 混淆Maven项目代码
生活随笔
收集整理的這篇文章主要介紹了
IDEA JDK1.8 ProGuard 混淆Maven项目代码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
直接復制到pom中即可使用
<build><plugins><plugin><groupId>com.github.wvengen</groupId><artifactId>proguard-maven-plugin</artifactId><!-- <version>2.0.14</version>--><version>2.1.1</version><executions><execution><!--混淆時刻,這里是打包的時候混淆--><phase>package</phase><goals><!--使用插件的什么功能,當然是混淆--><goal>proguard</goal></goals></execution></executions><configuration><proguardVersion>6.0.2</proguardVersion><obfuscate>true</obfuscate><!--是否將生成的PG文件安裝部署--><attach>true</attach><!--是否混淆--><obfuscate>true</obfuscate><!--指定生成文件分類--><attachArtifactClassifier>pg</attachArtifactClassifier><options><!--JDK目標版本1.8--><option>-target 1.8</option><!--不做收縮(刪除注釋、未被引用代碼)--><!--<option>-dontshrink</option>--><!--不做優化(變更代碼實現邏輯)--><!--<option>-dontoptimize</option>--><!--不路過非公用類文件及成員--><option>-dontskipnonpubliclibraryclasses</option><option>-dontskipnonpubliclibraryclassmembers</option><!--優化時允許訪問并修改有修飾符的類和類的成員--><option>-allowaccessmodification</option><!--確定統一的混淆類的成員名稱來增加混淆,防止沖突--><option>-useuniqueclassmembernames</option><!--不混淆所有包名,Spring配置中有大量固定寫法的包名--><option>-keeppackagenames</option><!--不混淆所有特殊的類--><option>-keepattributesExceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod</option><!--不混淆所有的set/get方法,畢竟項目中使用的部分第三方框架(例如Shiro)會用到大量的set/get映射--><option>-keepclassmembers public class *{void set*(***);*** get*();}</option><option>-keep public class * {public protected *;}</option><!--不顯示警告信息,如果顯示則會出現Error無法完成混淆!--><option>-dontwarn **</option></options><outjar>${project.build.finalName}-pg.jar</outjar><!--添加依賴,這里你可以按你的需要修改,這里測試只需要一個JRE的Runtime包就行了--><libs><lib>${java.home}/lib/rt.jar</lib><lib>${java.home}/lib/jce.jar</lib><lib>${java.home}/lib/security/policy/unlimited/local_policy.jar</lib><lib>${java.home}/lib/security/policy/unlimited/US_export_policy.jar</lib><lib>${java.home}/lib/ext/sunjce_provider.jar</lib></libs><!--加載文件的過濾器,就是你的工程目錄了--><!--<inFilter>com/test/prog/**</inFilter>--><!--<inFilter>com/itdct/es/**</inFilter>--><!--對什么東西進行加載,這里僅有classes成功,畢竟你也不可能對配置文件及JSP混淆吧--><injar>classes</injar><!--輸出目錄--><outputDirectory>${project.build.directory}</outputDirectory></configuration><dependencies><!--使用6.0.2版本來混淆--><dependency><groupId>net.sf.proguard</groupId><artifactId>proguard-base</artifactId><version>6.0.2</version><scope>runtime</scope></dependency></dependencies></plugin><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>這里說一下自定義修改的地方,不報錯也可以默認
生成jar的名稱
jdk版本
<libs>標簽中的local_policy.jar和US_export_policy.jar看看自己jdk的路徑這個會有所不同 </libs>
我的路徑
<libs><lib>${java.home}/lib/rt.jar</lib><lib>${java.home}/lib/jce.jar</lib><lib>${java.home}/lib/security/policy/unlimited/local_policy.jar</lib><lib>${java.home}/lib/security/policy/unlimited/US_export_policy.jar</lib><lib>${java.home}/lib/ext/sunjce_provider.jar</lib> </libs> 有的 <libs><lib>${java.home}/lib/rt.jar</lib><lib>${java.home}/lib/jce.jar</lib><lib>${java.home}/lib/security/policy/limited/local_policy.jar</lib><lib>${java.home}/lib/security/policy/limited/US_export_policy.jar</lib><lib>${java.home}/lib/ext/sunjce_provider.jar</lib> </libs> 還有的 <libs><lib>${java.home}/lib/rt.jar</lib><lib>${java.home}/lib/jce.jar</lib><lib>${java.home}/lib/security/local_policy.jar</lib><lib>${java.home}/lib/security/US_export_policy.jar</lib><lib>${java.home}/lib/ext/sunjce_provider.jar</lib> </libs>總結
以上是生活随笔為你收集整理的IDEA JDK1.8 ProGuard 混淆Maven项目代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: idea 提示接口注释信息
- 下一篇: ORA-12505, TNS:liste