我正在使用Intellij IDEA开发Java桌面应用程序,并希望使用ProGuard混淆我的源代码。如何在Intellij IDEA 2016.1.14中集成/使用ProGuard?
我正在使用Intellij IDEA开发Java桌面应用程序,并希望使用ProGuard混淆我的源代码。如何在Intellij IDEA 2016.1.14中集成/使用ProGuard?
1. 添加Intellijguar2插件
2. 在 "项目结构 -> 模块 -> 混淆" 中按提示下载 yguard。它会带您到一个html页面,在页面的右侧放置了yguard。解压并获取jar文件。浏览至该jar文件,设置其路径。取消勾选 pedantic error-checking (可选),定义项目的MainClass。确定。
3. 构建 -> 构建项目 -> 构建artifacts并获取普通可执行jar。 (如果您在运行菜单中看不到启用artifacts,请转至文件-> 项目结构 -> artfact,并通过+新项创建与主类依赖关系)
4. 构建 -> 混淆***模块
5. 添加包含项目* .class 文件的YourProject/out/production/YourProject/firstfolder_of_packagename
(我的是'uz',例如)。
6. 删除模块编译输出,为要混淆的jar分配路径并按“构建”按钮。
7. 使用zip程序打开混淆后的jar文件。确保JD-GUI应用程序已对所有类文件进行了混淆。
8. 切掉META-INF文件夹,并从未混淆的可执行jar中手动添加META-INF和像libs或assets这样的文件夹(或在之前设置的artifacts中找到它们)。 依次您将获得一个混淆的可执行jar。 例如,对于json库,最终我在zip编辑器中得到了以下结果视图:
我没有尝试过这个方法(我喜欢先找到简单的方法),但是如果你按照步骤操作,应该可以实现。我会尝试并报告结果。
进入这个链接并学习如何为IntelliJ IDEA创建Ant构建文件
在这里下载yGuard
解压yGuard存档并导航到doc
目录。
有一个html“how to”文件。阅读并理解后,即可准备发布缩小的代码。
可选:在网上搜索yGuard技巧和诀窍,以获得最大的构建效益。
--- 工作笔记 ---
[1.0] 在IntelliJ 2017中,有一个选项可以在构建菜单上生成Ant构建文件。 Build->Generate Ant Build File
对于我来说,适用的设置是单个构建文件,勾选所有其他选项,并使用提供的项目名称。
[1.1] View->Tool Windows->Ant Build
这应该会让你得到需要的知识,来自于步骤5和步骤1
的链接和答案中的步骤4
。
这是我的工作yGuard任务:
<target depends="artifact.project" name="yguard">
<taskdef name="yguard"
classname="com.yworks.yguard.YGuardTask"
classpath="yguard.jar"/>
<yguard>
<inoutpair in="${temp.jar.path.project.jar}"
out="${artifact.output.project}/project-release.jar"/>
<shrink
logfile="shrinklog.xml">
<keep>
<class classes="protected"
methods="protected"
fields="protected"/>
</keep>
</shrink>
</yguard>
<target name="all" depends="build.modules, build.all.artifacts, yguard"
description="build all">
<!-- Delete temporary files -->
<delete dir="${artifacts.temp.dir}"/>
</target>
你需要从build.all.artifacts
目标中删除delete temporary files
操作,这样当你到达all
目标时,文件仍然可用。
就像在yGuard的html文档
底部所说的那样,IntelliJ会抱怨你的yGuard语法,但yGuard仍然可以工作。
如果有人能整理一下这个内容,那就随便来吧。对我来说它很有效,但你可能会有不同的情况。此外,在添加了你的“小型”ant构建后,你将能够创建一个非常小的ant构建xml,并使用Project Structure->Artifacts->Post Processing
。在WORKING-NOTES: [1.1] "5th step"
中指出,这需要一些手动修改。
Project Structure->Artifacts->Post Processing
。对于@M2E67来说,最好的猜测是你可以练习使用ant构建目标来测试你的配置是否正常。顺便说一下,ant有它自己的构建窗口... - Hypersoft Systems