我正在使用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.蚂蚁,我错过了一些明显的东西?谢谢!
答案 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
可以实现相同的结果。