Переменное имя пакета с плагином Maven Android - PullRequest
12 голосов
/ 29 сентября 2011

Я использую плагин Maven Android для создания своего приложения.

На самом деле я создаю 3 "фирменные" версии одного и того же приложения (значок приложения, цвета и т. Д. ... меняются, но не функции). Я знаю, что мне нужно использовать разные имена пакетов для каждого приложения, чтобы они считались разными.

До сих пор мне удавалось иметь «динамические» значения, используя фильтры Maven в strings.xml:

<string name="app_name">${app_name}</string>
<string name="widget_name">${widget_name}</string>
<string name="app_icon">${app_icon}</string>

Проблема в том, что это не работает для имени пакета! Если я сделаю:

<manifest package="${foo.bar}">

ADT (ну, собственно, валидатор XML) жалуется, говоря, что пакет атрибутов содержит недопустимый символ '$'

Я не могу найти обходного пути для этого ... Есть ли способ сказать ADT запустить фильтрацию ресурсов Maven или что-то в этом роде?

1 Ответ

17 голосов
/ 19 октября 2011

После дальнейших исследований все выглядит довольно просто!

Вам просто нужно добавить <renameManifestPackage> в конфигурации плагина Maven Android. Кажется, работает, начиная с версии> 2.9.0:

<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>maven-android-plugin</artifactId>
    <version>2.9.0-beta-5</version>
    <configuration>
        ...
        <renameManifestPackage>${manifest_package}</renameManifestPackage>
    </configuration>
</plugin>
...