如何在intellij IDEA上使用proguard?

Adi*_*dil 6 java proguard

我正在使用 Intellij IDEA 开发 java 桌面应用程序。我想使用 proguard 混淆我的源代码。如何在 Intellij IDEA 2016.1.14 上集成/使用 proguard?

Hyp*_*ems 2

我还没有尝试过这个(我喜欢先找到简单的方法),但是,如果您按照步骤操作,它应该可以工作。我会尝试这个并报告回来。

  1. 转到此链接并了解如何为 IntelliJ IDEA 创建 Ant 构建文件

  2. 前往此处下载yGuard

  3. 解压 yGuard 存档并导航到该doc目录。

  4. 有一个 html“如何”文件。仔细阅读该内容,您应该准备好发布精简代码。

  5. 可选:在网上搜索 yGuard 提示和技巧,以充分利用您的构建。

--- 工作笔记 ---

[1.0] 在 IntelliJ 2017 中,构建菜单上有一个生成 Ant 构建文件的选项。Build->Generate Ant Build File对我有用的设置是单个构建文件,使用提供的项目名称检查其他所有内容。

[1.1]这应该可以让您利用从该答案的第 5 步 链接的第 5 步中View->Tool Windows->Ant Build获得的知识到达您需要的位置。14

这是我的 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>
Run Code Online (Sandbox Code Playgroud)

然后你将“全部”修改为如下所示:

  <target name="all" depends="build.modules, build.all.artifacts, yguard"
          description="build all">
      <!-- Delete temporary files -->
      <delete dir="${artifacts.temp.dir}"/>

  </target>
Run Code Online (Sandbox Code Playgroud)

并且您必须delete temporary filesbuild.all.artifacts目标中删除操作,因此当您到达all目标时,文件仍然可用。

就像html doc底部的 yGuard 中所说的那样,IntelliJ 会抱怨您的 yGuard 语法,但 yGuard 仍然可以工作。

如果有人可以清理这个,请随意。这对我有用,你的里程可能会有所不同。另外,您将能够创建一个非常小的 ant 构建 xml,并Project Structure->Artifacts->Post Processing在添加“微小”ant 构建(如 中所述)后使用 , WORKING-NOTES: [1.1] "5th step"。为此肯定需要一些手工操作。