2011-11-15 21 views
3

我實際上有兩個相關的問題:proguard的蟻任務

  1. 可以在預定義的常量在任務聲明爲<injar file="${build}/myjar.jar" />擴大?
  2. 如何在proguard中重用類路徑定義?我試圖實現的不是指定所需的全部庫。它們非常多,它們已經包含在具有特定id的ant類路徑中。

非常感謝。

Martin

回答

5

當然你可以使用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?

+0

感謝您的回答。感謝您的幫助。 –

+0

正如ProGuard所預期的那樣(至少4.6版本),PathConvert不會在文件名稱周圍添加引號,因此常規XML元素可能更安全地用於路徑規範。嵌入式ProGuard風格的其他選項確實更緊湊,更易讀。 –

+0

我在描述解決方案報價問題的問題的答案中添加了一個鏈接。 – Robert

1

要回答你的第一個問題,是的。像構建文件中那樣擴展變量是Ant的一個特性。它將與您使用的任何任務一起工作。