3

我正在使用 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 文件视为一个大文件名。我是一个众所周知的白痴,我是否遗漏了一些明显的东西?谢谢!

4

3 回答 3

5

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

于 2012-05-08T09:02:16.663 回答
1

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

<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>
于 2012-05-07T16:58:59.223 回答
0

看起来configuration属性中只允许一个文件。
编辑
和属性只允许在<proguard>元素上。我有另一个可能的解决方案。尝试使用 Ant concat-task将您的配置文件连接成一个并将此临时文件传递给<proguard configuration=""> 属性。


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

于 2012-05-07T07:53:11.823 回答