【发布时间】:2018-10-16 10:42:44
【问题描述】:
我正在尝试使用 Maven Shade 和 Proguard 进行复杂的构建。问题是我只想混淆我的代码和一些相关库(在 pom 中声明为依赖项),pom.xml 中存在更多库,但我不想用 Proguard 处理它们。
我目前的做法如下:
- 使用
maven shade生成一个Jar,其中包含我想要混淆的依赖项以及我的代码。 (execution binded to package phase) - 使用 Proguard 混淆代码。 (
execution binded to package phase) - 通过第二次执行
maven shade将缺少的依赖项(Storm 等)添加到最终 Jar。 (execution binded to verify phase)
问题是,在第三步(第二步shade)中,我在最终的 Jar 中获得了混淆包和未混淆包。
此外,我还尝试在第一步中通过shade 重命名这些包,但同样的情况发生了,未混淆的代码以及经过混淆的重命名后的代码都存在于胖 Jar 中。
我尝试的另一件事是在第二个shade 中排除未混淆的包,但是我没有从前面的步骤中获得任何代码,只有外部库。
需要考虑的任何提示或不同的方法?
【问题讨论】:
-
我可以看看 pom.xml 吗?
-
嗨,感谢您的关注。今天早上刚刚通过 Proguard 配置解决了。不过,我认为我需要重新研究
Shade插件的工作原理 -
在使用多模块项目的 maven-proguard-plugin 进行混淆时,我遇到了很多关于 spring 和 shade 的问题。祝你好运。
标签: java maven proguard maven-shade-plugin