使用 IntelliJ IDEA 开发一般 Java 应用程序时通过 Allatori 进行代码混淆非常容易配置,下面总结一下本人经验,介绍一下配置方法。
首先在 IDEA 的 Module 所在硬盘目录内创建一个名为 allatori 的子目录,将 Allatori 自己的 jar 文件都复制到这个子目录下。然后在 IDEA 的 Module 所在目录内创建两个 XML 文件,一个是 Allatori 自己的混淆配置文件,命名为 config-allatori.xml;另一个是用于 Ant 构建的配置文件,命名为 build-allatori.xml。首先看 config-allatori.xml 文件的内容,基本可以作为一个模板:
? ?
? ? ? ?
? ?
? ?
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
? ?
? ?
? ? ? ?
? ? ? ? ? ?
? ? ? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ? ? ?
? ? ? ?
? ?
? ?
下面再来看 build-allatori.xml 文件的内容,也可以作为一个模板:
? ?
? ?
? ?
? ?
? ?
? ? ? ?
? ? ? ?
? ?
? ?
? ? ? ?
? ? ? ?
? ?
这里主要是注意,${out.classes.absolute.dir} 以及 ${out.classes.absolute.dir}-obfuscated 所定义的 IDEA 针对项目 Module 编译产生的目标类文件以及 jar 文件所在路径一定要准确。
然后我们就要将 build-allatori.xml 加入到 IDEA 的 Ant Build 系统中,如下图所示:

点击 IDEA 右上部分 Ant Build 那个按钮,在弹出的 Dock 小窗口中点击“+”按钮,然后选择 build-allatori.xml 文件即可将其加入到 IDEA 的 Ant Build 系统中。
接下来,我们进入到 IDEA 的 Project Structure 配置中,创建好 Module 的 Artifacts,在其 Artifacts 的具体属性配置中,需要指定其 Post-processing 使用 build-allatori.xml 中定义的名为“你的module名字-obfuscated”的 target(我这里是 MacCameraCaptureTest-obfuscated),如下图所示:

注意红色区域里面,要把 Run Ant target 前面勾选中,然后点击其右边的“...”按钮,会出现选择窗口,你需要选择 build-allatori.xml 中定义的名为“你的module名字-obfuscated”的 target(我这里是 MacCameraCaptureTest-obfuscated)。
之后,点击 IDEA 菜单“Build”->“Build Artifacts...”菜单项并选择“Build”命令来进行 Module 的编译构建即可。你会在 Module 的 Artifact 生成目录下看到两个 jar 文件,其中一个名为“你的Module名字-obfuscated.jar”的文件(我这里是 MacCameraCaptureTest-obfuscated.jar),那就是混淆以后的 jar 文件了;不带“-obfuscated”后缀的 jar 文件是没有混淆的版本。
另外注意,如果需要清理 Module 已生成的类文件及 jar(包括混淆版本),可以通过 IDEA 的 Ant Build 执行 build-allatori.xml 中定义的“你的module名字-clean” target,就可以彻底清除它们。