java 打包 maven 混淆_Maven混淆和打包插件的使用

混淆和打包插件的使用

1. 混淆插件

com.github.wvengen

proguard-maven-plugin

2.0.13

package

proguard

true

true

pg

-target 1.8

-dontshrink

-dontoptimize

-dontskipnonpubliclibraryclasses

-dontskipnonpubliclibraryclassmembers

-allowaccessmodification

-useuniqueclassmembernames

-keeppackagenames

-keepattributes

Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod

-keepclassmembers public class * {void set*(***);*** get*();}

-keep class com.xxx.web.commonmodel.** {*;}

-keep class com.xxx.web.model.** {*;}

-keep class com.xxx.dasheng_cluster.service.** {*;}

-keep class com.xxx.dasheng_selfsampling.service.** {*;}

-keep class com.xxx.web.util.** {*;}

-keep class com.xxx.web.Swagger2 {*;}

-keep class com.xxx.web.controller.**

-keep class com.xxx.web.service.**

-keep class com.xxx.web.singleton.**

-keep class com.xxx.web.executors.**

-keep class com.xxx.web.interceptor.**

-keep class com.xxx.web.Application

-ignorewarnings

${project.build.finalName}-pg.jar

${java.home}/lib/rt.jar

${java.home}/lib/jce.jar

com/xxx/dasheng/**

classes

${project.build.directory}

4.注意:

打包后会有两个 jar 包, 其中${project.build.finalName}-pg.jar 是混淆后输出的jar, 另一个就是工程输出的包.

使用混淆后的包对工程输出的包进行覆盖,具体如下: 比如混淆后的jar包叫做 class-pg.jar, 工程的输出jar为xxx-SNAPSHOT.jar

执行 sudo ${JAVA_HOME}/bin/jar xvf ./classes-pg.jar >/dev/null 解压混淆包

执行 ${JAVA_HOME}/bin/jar xvf ./xxx-SNAPSHOT.jar >/dev/null 解压输出包

用解压后的混淆包覆盖原始输出包的相关文件,达到混淆的目的

进入混淆后的输出包目录下,执行sudo ${JAVA_HOME}/bin/jar cvfM0 ../xxx-SNAPSHOT-pg.jar ./* >/dev/null进行重新打包. xxx-SNAPSHOT-pg.jar就是最终的可执行的混淆输出包.

2.打包插件

org.codehaus.mojo

appassembler-maven-plugin

2.0.0

target/app

lib

flat

conf

true

src/main/resources

true

true

com.xxx.web.Application

Application

-Dapp.init.name="Application"

-server

-Xmx2G

-Xms2G

package

assemble

4.注意:

插件打包后有三层目录, 名称和作用如下

bin: 启动程序的脚本目录, 默认支持windows 和 linux 两种操作系统.替代java -jar xxx.jar的启动方式.

conf: 配置文件目录

lib: 工程 pom文件依赖的所有 jar包在这个目录下

使用插件时,所有的依赖的jar都要在pom文件中进行dependency.如过某个jar包是从外部引入的, 需要添加到本地或者远程maven仓库中,然后进行依赖. 比如有可能会建立一个lib 目录引入pom文件中没有的jar,这种jar是不能引入到如上所述的三层目录的lib目录下的,程序启动会报异常.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值