我实际上有两个相关的问题:
- 预定义的常量可以在任务声明中扩展为
<injar file="${build}/myjar.jar" />
吗?如何在proguard中重用类路径定义?我试图达到的目的不是指定所需库的全部集合。它们相当多,它们已经包含在ant的类路径中,具有特定的id。谢谢你。
马丁当然可以使用Ant变量。然而,从我的角度来看,将所有命令行选项写入proguard任务的主体更容易:
<taskdef resource="proguard/ant/task.properties" classpath="lib/proguard.jar" />
<proguard>
-libraryjars "${java.home}/lib/rt.jar"
-injars "${jar.name}"
-outjars build/temp.jar
-keep class test.Main { public static void main(java.lang.String[]); }
-dontwarn
-dontoptimize
-dontobfuscate
</proguard>
要将已定义的类路径转换为可以包含在proguard定义中的字符串,可以使用Ant任务PathConvert。链接页面上的第一个示例应该是您需要的。
Update:如何获得路径条目周围的引号已经在这里得到了回答:如何正确地在ant任务中引用路径?
回答你的第一个问题,是的。在构建文件中像这样展开变量是Ant的一个特性。