我正在转移一个具有proguard混淆的java netbeans项目,从ant到maven multi模块。我是maven的新手,在阅读并尝试了许多解决方案之后建筑几天了,我还是很迷茫。
从我所看到的,有很多方法可以构建我的项目:
option 1: option 2:
module top module top
module A module A
module B module B
module C module C
module assembly
模块之间存在内在依赖关系。 '模块顶部'是一个代码非常少的模块,它充当包装器。 在选项1中,用于打包项目的pom.xml位于'模块顶部'。 在选项2中,'模块组装'没有逻辑,只有用于打包项目的pom.xml。
我的目标是将项目打包在一个胖jar中,其中内部模块将使用proguard插件进行模糊处理。
到目前为止我尝试过:
我设法模糊了一个模块,但由于模块彼此依赖,我需要保留整个界面结构,否则模块在组合在一起时不适合。
我创建了整个项目的胖jar文件,并使用proguard对其进行模糊处理。由于它是一个大文件,大约20M,这个过程花了很多时间,大约15分钟。输出文件很小,大约4M,但它没有工作。
现在我正在尝试将构建期间的所有代码汇编到分发jar中,并将其与库jar分开。我的目标是只模糊我的模块,并在以后添加库(这是我见过的,在我目前的ant项目中为我工作)。
到目前为止,我所有的尝试都没有产生一个有效的过程。我无法附加pom文件,因为我在尝试新内容时会不断更改它们。
总而言之,这些是我看到的选项:
你推荐什么?任何帮助将不胜感激
编辑
我获得了一个小突破。使用option2和proguard GUI,我终于设法创建了一个工作混淆的jar。第一步,我将带有copy-dependencies的maven-dependency-plugin运行到lib文件夹。
然后在proguard GUI中,我会伤害'我的所有模块,以及' libraryjar'所有其余的,并创建dist-obsfucated.jar
我目前的ModuleAssemble结构是这样的:
project
target
dist-obsfucated.jar
lib
moduleA.jar
moduleB.jar
moduleC.jar
other_file1.jar
other_file2.jar
如何将所有jar组装到可执行jar?我需要告诉程序集插件忽略lib文件夹中未经过充分利用的模块A到C
编辑#2
我设法使用' maven-antrun-plugin'
解决了这个问题