我正在使用 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.蚂蚁,我错过了一些明显的东西吗? 谢谢!
创建一个主 .pro 文件,其中包含指向实际 .pro 文件的-include
选项。
这个答案不是很好,但它有效...
<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>
看起来configuration
属性中只允许一个文件。
编辑
并且仅在<proguard>
元素上允许属性。我有另一种可能的解决方案。尝试将您的配置文件与 Ant concat-task 连接成一个,并将此临时文件传递给<proguard configuration=""
>属性。
此外,还可以修改 ProGuardTask
-class 以接受多个文件作为参数,并在以后连接它们。蚂蚁macrodef
也可以达到同样的结果。