我正在尝试使用Maven Shade和Proguard进行复杂的构建。事实是,我只想混淆我的代码和一些相关的库(在pom中声明为依赖项),pom.xml
中存在更多的库,但我不想使用Proguard对其进行处理。
我当前的方法如下:
maven shade
生成一个Jar,其中包含我要混淆的依赖项以及我的代码。 (execution binded to package phase
)execution binded to package phase
)maven shade
,将丢失的依赖项(风暴等)添加到最终的Jar中。 (execution binded to verify phase
)问题是,在第三步(第二个shade
)中,我进入了最终的Jar,既包含混淆的软件包,也包含未混淆的软件包。
此外,我还尝试在第一步中通过shade
重命名这些软件包,但同样的事情是,未混淆的代码以及经过混淆的已重命名的代码位于胖子Jar中。
我尝试的另一件事是排除第二个shade
中未混淆的软件包,但是随后我没有从前面的步骤中获得任何代码,仅从外部库中获得了任何代码。
是否有任何建议或其他方法可供考虑?
答案 0 :(得分:0)
只需通过Proguard配置解决它,仅在混淆阶段包括要混淆的库(使用正则表达式进行package
选择)。
例如:
`-keep class !com.xxx.**{**}, !com.yyyy.*{**}
谢谢