Java Maven多模块+ proguard混淆

时间:2015-10-05 19:06:23

标签: java maven proguard obfuscation

我正在转移一个具有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文件,因为我在尝试新内容时会不断更改它们。

总而言之,这些是我看到的选项:

  1. 构建&分别对每个模块进行模糊处理,将它们组合在顶层模块中,同时处理保持接口的问题。
  2. 组装&将所有模块混淆在一起,与库分开。
  3. 构建一个巨大的胖文件,并将其作为一个整体进行模糊处理。
  4. 将包装放在模块顶部'或使用专用的模块组件'
  5. 你推荐什么?任何帮助将不胜感激

    编辑

    我获得了一个小突破。使用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'

    解决了这个问题

0 个答案:

没有答案