Proguard как задача муравья - PullRequest
3 голосов
/ 15 ноября 2011

У меня на самом деле есть два связанных вопроса:

  1. Можно ли расширить предопределенные константы в объявлениях задач как <injar file="${build}/myjar.jar" />?
  2. Как я могу повторно использовать определение classpath в proguard? Чего я пытаюсь добиться, так это не указывать весь набор необходимых библиотек. Их довольно много, и они уже включены в путь к муравьям с определенным идентификатором.

Большое спасибо.

Martin

Ответы [ 2 ]

5 голосов
/ 15 ноября 2011

Конечно, вы можете использовать переменные 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 .Первый пример на связанной странице должен быть тем, что вам нужно.

Обновление: Здесь указано, как получить кавычки вокруг записей пути: Как правильно указать путь в задаче муравья?

1 голос
/ 15 ноября 2011

Чтобы ответить на ваш первый вопрос, да.Подобное расширение переменных в файле сборки является особенностью Ant.Он будет работать с любыми заданиями, которые вы используете.

...