ProGuard Ant任务的多个配置文件

时间:2012-05-07 07:22:21

标签: ant proguard

我正在使用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.蚂蚁,我错过了一些明显的东西?谢谢!

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分: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>

答案 2 :(得分:0)

configuration属性中只允许一个文件 的被修改
并且仅在<proguard>元素上允许属性。我有另一个可能的解决方案尝试将您的配置文件与Ant concat-task连接成一个,并将此临时文件传递给<proguard configuration=""&gt;属性。


此外,可以修改ProGuardTask - 类以接受多个文件作为参数,并在以后连接它们。使用Ant macrodef可以实现相同的结果。