maven中添加proguard来混淆代码

简介: 想在现有的web工程中打包部分类的时候进行代码混淆。由于采用的是maven来管理所以google了一把发现已经有类似插件了。

想在现有的web工程中打包部分类的时候进行代码混淆。由于采用的是maven来管理所以google了一把发现已经有类似插件了。只要下回插件并添加相应的配置文件即可。本文仅是做下相关记录


1.修改pom.xml添加插件

	<plugin>
				<groupId>com.pyx4me</groupId>
				<artifactId>proguard-maven-plugin</artifactId>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>proguard</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<obfuscate>true</obfuscate>
					<proguardInclude>${basedir}/proguard.conf</proguardInclude>
					<!-- 添加依赖,这里你可以按你的需要修改 -->
					<libs>						 
						<lib>${java.home}/lib/rt.jar</lib>
						<lib>lib/fcexporter_jdk1.5.jar</lib>
						<lib>lib/fcexporthandler.jar</lib>	
						<lib>lib/jsp-api.jar</lib>
						<lib>lib/servlet-api.jar</lib>
					</libs>
					<addMavenDescriptor>false</addMavenDescriptor>
				</configuration>
				<dependencies> 
					<!-- 使用4.8版本来混淆 -->
					<dependency>
						<groupId>net.sf.proguard</groupId>
						<artifactId>proguard</artifactId>
						<version>4.8</version>
						<scope>runtime</scope>
					</dependency>
				</dependencies>
				
			</plugin> 

2.在pom.xml平级目录下添加proguard.conf文件

 

# ----------------------------------
#  通过指定数量的优化能执行
#  -optimizationpasses n
# ----------------------------------
-optimizationpasses 3

# ----------------------------------
#   混淆时不会产生形形色色的类名 
#   -dontusemixedcaseclassnames
# ----------------------------------
-dontusemixedcaseclassnames
# ----------------------------------
#      指定不去忽略非公共的库类
#  -dontskipnonpubliclibraryclasses
# ----------------------------------
#-dontskipnonpubliclibraryclasses

# ----------------------------------
#       不预校验
#    -dontpreverify
# ----------------------------------
# -dontpreverify

# ----------------------------------
#      输出生成信息
#       -verbose
# ----------------------------------
-verbose

#混淆时应用侵入式重载 
-overloadaggressively 
 
#优化时允许访问并修改有修饰符的类和类的成员 
-allowaccessmodification
#确定统一的混淆类的成员名称来增加混淆 
-useuniqueclassmembernames



#这里添加你不需要混淆的类

-keep  class com.zsoftware.common.cache.** {*;} 
-keep  class com.zsoftware.common.constant.** {*;} 
-keep  class com.zsoftware.common.dwr.** {*;} 
-keep  class com.zsoftware.common.servelt.** {*;} 
-keep  class com.zsoftware.common.util.** {*;} 
-keep  class com.zsoftware.Component.** {*;} 
-keep  class com.zsoftware.interfacepkg.** {*;} 
-keep  class com.zsoftware.model.** {*;} 
-keep  class com.zsoftware.view.** {*;} 
-keep  class com.zsoftware.webResource.** {*;} 

-keep public class * extends  javax.servlet.Servlet
 
-keepdirectories  **
-keepattributes **
 

#-keepnames class * implements java.io.Serializable
# ---------保护所有实体中的字段名称----------
-keepclassmembers class * implements java.io.Serializable {
    <fields>;
}

# --------- 保护类中的所有方法名 ------------
-keepclassmembers class * {
	public <methods>;
}

 

3.通过 mvn package 打包 就会发现打出的结果包已经混淆


目录
相关文章
|
应用服务中间件 nginx
https网页加载http资源时不显示图片,报错解决方案
本文是博主学习网络知识的记录,希望对大家有所帮助。
5440 0
https网页加载http资源时不显示图片,报错解决方案
|
存储 安全 算法
使用jotp实现双因子验证
扫盲使用totp增强身份安全性指南,原理看懂也不用自己造轮子呀,最讨厌哪些啥也不懂的搬运工,我这里给大家解惑吧
879 0
|
1月前
|
存储 安全 Linux
Proxmox VE 9.0 正式版发布 - 开源虚拟化管理平台
Proxmox VE 9.0 正式版发布 - 开源虚拟化管理平台
296 0
|
9月前
|
Java 关系型数据库 Nacos
微服务SpringCloud链路追踪之Micrometer+Zipkin
SpringCloud+Openfeign远程调用,并用Mircrometer+Zipkin进行链路追踪
1104 20
|
小程序
阿里云短信签名申请流程,手动整理(附短信签名问题解答)
阿里云短信签名是短信中的标识信息,如【阿里云】,用于表明发送方身份。申请流程简便:登录阿里云短信服务控制台,选择国内消息下的签名管理并添加签名,按指引填写表单。审核通常2小时内完成。个人用户每日限申请一个通用签名,企业用户数量不限。签名审核需确保业务主体一致,已通过审核的签名不可改名,仅能调整其它信息并重新审核。特定情况下需上传授权委托书,且签名需关联已备案网站。
3318 1
|
Java 数据库连接 网络安全
已解决 IDEA Maven 项目中 “Could not find artifact“ 问题的常见情况和解决方案
已解决 IDEA Maven 项目中 “Could not find artifact“ 问题的常见情况和解决方案
14686 0
|
XML 缓存 Java
gradle简介与windows安装操作
gradle简介与windows安装操作
445 2
|
XML 前端开发 Java
SpringBoot参数校验@Validated、@Valid(javax.validation)详解
SpringBoot参数校验@Validated、@Valid(javax.validation)
2106 4
|
JavaScript 前端开发 Java
Java 生成Zip压缩文件,并下载功能
当文件比较大时,为了提高性能生成 压缩包,再下载提高效率。
480 0
|
JSON Java fastjson
JSON与Java的两种解析方式
JSON与Java的两种解析方式