直接复制到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>