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

最佳答案

我没有尝试过(我想先找到简单的方法),但是,如果您按照以下步骤操作,它应该可以工作。我将尝试并报告。

  • 转到此链接,学习如何创建Ant build file for IntelliJ IDEA
  • 转到此处下载yGuard
  • 解压yGuard归档文件并导航到doc目录。
  • 有一个html“如何”文件。继续阅读,您应该准备发布缩小的代码。
  • 可选:在网上搜索yGuard提示与技巧,以充分利用您的构建。

  • -工作注意事项-

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

    [1.1] View->Tool Windows->Ant Build这应该使您从在此答案的步骤1和步骤4的链接的5th step获得的知识中获取所需的信息。

    这是我正在工作的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>
    

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

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

    如果有人可以清理,请放心。它对我有用,您的里程可能会有所不同。另外,按照Project Structure->Artifacts->Post Processing的说明添加“小”蚂蚁构建之后,您将能够创建一个很小的ant构建xml,并使用WORKING-NOTES: [1.1] "5th step"。为此肯定需要进行一些手工操作。

    07-26 09:41