【问题标题】:Multiple configuration files for the ProGuard Ant taskProGuard Ant 任务的多个配置文件
【发布时间】:2012-05-15 17:35:30
【问题描述】:

我正在使用 ProGuard ant 任务,一切都很好,除了我的 ProGuard 配置文件很大。此外,不同的任务使用不同的 ProGuard 配置文件,还有很多我想重构为单独的 .pro 文件的复制粘贴。

<taskdef resource="proguard/ant/task.properties" classpath="C:/Program Files/proguard4.7/lib/proguard.jar"/>
<target name="obfuscated_jar" depends="raw_jar">
    <proguard configuration="core.pro lib1.pro lib2.pro">
        <outjar path="prog_obfuscated.jar"/>
    </proguard>
</target>

上述方法不起作用,因为它将多个 .pro 文件视为一个大文件名。我是一个众所周知的白痴w.r.t。蚂蚁,我错过了什么明显的东西吗?谢谢!

【问题讨论】:

    标签: ant proguard


    【解决方案1】:

    您可以创建一个主 .pro 文件,其中包含指向实际 .pro 文件的 -include 选项。

    【讨论】:

    • 非常感谢 ProGuard 顺便说一句,太棒了!
    【解决方案2】:

    这个答案不是很好,但它有效......

    <taskdef resource="proguard/ant/task.properties" classpath="C:/Program Files/proguard4.7/lib/proguard.jar"/>
    <target name="obfuscated_jar" depends="raw_jar">
        <concat destfile="proguard_temp.pro">
            <filelist dir="." files="core.pro,lib1.pro,lib2.pro"/>
        </concat>
        <proguard configuration="proguard_temp.pro">
            <outjar path="prog_obfuscated.jar"/>
        </proguard>
        <delete file="proguard_temp.pro"/>
    </target>
    

    【讨论】:

      【解决方案3】:

      configuration 属性中似乎只允许一个文件。
      已编辑
      并且仅在 &lt;proguard&gt; 元素上允许使用属性。我有另一个可能的解决方案。尝试使用 Ant concat-task 将您的配置文件连接成一个并将这个临时文件传递给 &lt;proguard configuration=""> 属性。


      另外,可以修改ProGuardTask-class 以接受多个文件作为参数并在以后将它们连接起来。 Ant macrodef 也可以达到同样的效果。

      【讨论】:

      • 试过了,没有运气。 proguardconfiguration doesn't support the "configuration" attribute
      • 是的。我们想过同样的事情。 :-)
      • 哈!我想伟大的思想是一样的,同时也是一样的。谢谢您的帮助!控制台上的 Proguard 接受多个命令,所以我猜想它也会在 ant 任务中接受多个命令,但是 concat 的东西工作正常。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 2011-02-22
      相关资源
      最近更新 更多