【发布时间】:2011-12-29 07:57:16
【问题描述】:
我其实有两个相关的问题:
- 可以在任务声明中将预定义的常量扩展为
<injar file="${build}/myjar.jar" />吗? - 如何在 proguard 中重用类路径定义?我想要实现的不是指定整套必需的库。它们很多,并且已经包含在具有特定 ID 的 ant 类路径中。
非常感谢。
马丁
【问题讨论】:
我其实有两个相关的问题:
<injar file="${build}/myjar.jar" />吗?非常感谢。
马丁
【问题讨论】:
当然你可以使用 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。链接页面上的第一个示例应该是您需要的。
更新:如何获取路径条目周围的引号已在此处得到解答:How to properly quote a path in an ant task?
【讨论】:
回答你的第一个问题,是的。像在构建文件中那样扩展变量是 Ant 的一个特性。它适用于您使用的任何任务。
【讨论】: