maven proguard混淆代码

 在pom.xml中插入以下代码:然后根据自己需要修改 <option>-keep class com.lzs.*.dao.**{*;}</option>

<!-- ProGuard混淆插件-->
		<plugin>
		   <groupId>com.github.wvengen</groupId>
		   <artifactId>proguard-maven-plugin</artifactId>
		   <version>2.1.0</version>
		   <executions>
		      <execution>
		         <!-- 混淆时刻,这里是打包的时候混淆-->
		         <phase>package</phase>
		         <goals>
		            <!-- 使用插件的什么功能,当然是混淆-->
		            <goal>proguard</goal>
		         </goals>
		      </execution>
		   </executions>
		   <configuration>
		      <!-- 是否将生成的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>-dontusemixedcaseclassnames</option>
		 
		         <!-- 优化时允许访问并修改有修饰符的类和类的成员 -->
		         <option>-allowaccessmodification</option>
		         <!-- 确定统一的混淆类的成员名称来增加混淆-->
		         <option>-useuniqueclassmembernames</option>
		         <!-- 不混淆所有包名-->
		         <option>-keeppackagenames</option>
		 
		         <!-- 需要保持的属性:异常,注解等-->
		         <option>-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod</option>
		         <!-- 不混淆所有的set/get方法 -->
				<option>-keepclassmembers public class * {void set*(***);*** get*();}</option>
		 
 		          <!--不混淆包下的所有类名,且类中的方法也不混淆  -->
		         <option>-keep class com.lzs.*.dao.**{*;}</option>
		         <option>-keep class com.lzs.*.entity.**{*;}</option>
		         <option>-keep class com.lzs.app.**{*;}</option>
		         <option>-keep class com.lzs.common.**{*;}</option>
		         <option>-keep class com.lzs.*.action.**</option>
		         <option>-keep class com.lzs.*.service.**</option>
		 
		      </options>
		      <!--class 混淆后输出的jar包-->
		      <outjar>hx.jar</outjar>
		      <!-- 添加依赖,这里你可以按你的需要修改,这里测试只需要一个JRE的Runtime包就行了 -->
		      <libs>
		         <lib>${java.home}/lib/rt.jar</lib>
		         <lib>${java.home}/lib/jce.jar</lib>
		      </libs>
		      <!-- 对什么东西进行加载,这里仅有classes成功,毕竟你也不可能对配置文件及JSP混淆吧-->
		      <injar>classes</injar>
		      <!-- 输出目录-->
		      <outputDirectory>${project.build.directory}</outputDirectory>
		   </configuration>
		</plugin>

最后可以使用: mvn clean package -DskipTests -Pprod 打包生成混淆后的jar包

之后吧hx.jar解压后,替换到war包里的class文件,即可部署到服务器上

 

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页