Вставить цель сборки, используя только build.xml? - PullRequest
2 голосов
/ 07 марта 2011

У меня есть build.xml, который способен компилировать и оптимизировать, если я запускаю цели сборки индивидуально - «ant compile», затем «and optimize».

Проблема в том, что я хочу запустить «ant release», который обычно делает все необходимое для создания двоичного файла релиза, но мне нужно вставить цель сборки в цепочку - цель называется «оптимизировать»и он запускает proguard optimize / shrinker для файлов классов непосредственно перед тем, как стадия "dex" создает байт-код.

Файл шаблона /opt/android-sdk-linux_x86/platforms/android-8/templates/android_rules.xml содержит следующее правило, которое я мог бы изменить, чтобы сказать «зависит =» компилировать, оптимизировать »« НоЯ не хочу повторно изменять файл для каждого другого SDK, который выходит (каждый раз с новым файлом android_rules.xml).

<!-- Converts this project's .class files into .dex files -->
<target name="-dex" depends="compile">
    <dex-helper />
</target>

Есть ли альтернатива изменению шаблона xml и добавлению всех правил компиляции в build.xml?

Ответы [ 2 ]

5 голосов
/ 07 марта 2011

Почему бы не использовать хук после компиляции в файле шаблона build.xml?Он гласит:

[This is typically used for code obfuscation.
 Compiled code location: ${out.classes.absolute.dir}
 If this is not done in place, override ${out.dex.input.absolute.dir}]
<target name="-post-compile">
</target>

Учитывая, что он явно запрашивает изменение, я думаю, что он будет поддерживаться всеми версиями SDK.для вашего проекта вам может потребоваться запустить android update project.

1 голос
/ 08 марта 2011

На случай, если вы его пропустили:

Начиная с SDK Tools Rev 8, встроена поддержка Proguard. Вам просто нужно добавить строку

proguard.config=proguard.cfg

в default.properties(и, конечно, у вас есть файл proguard.cfg, в котором вы устанавливаете правила запутывания)

Вам не нужно добавлять какие-либо другие цели.

(Это верно для версии Windowsво всяком случае, я думаю, что это то же самое для Linux. xml «правил» теперь называется main_rules.xml)

...