Скиннинг Android-приложения с профилями сборки Maven - PullRequest
6 голосов
/ 14 марта 2012

У меня есть приложение Android для mavenized, и клиенту нужна поддержка для создания скинов во время сборки.

Например: mvn clean install -P Developer, mvn clean install -P Customer1, mvn clean install -P Customer2

Другими словами, разному клиенту нужен немного другой набор изображений, разные строки (appName, авторское право и т. Д.), А также некоторые элементы в макетах должны быть скрыты или показаны (профиль разработчика), поэтому разныемакеты тоже.

Сначала я подумал о том, чтобы иметь папки типа res-customer1, res-customer2 параллельно со стандартным каталогом res и выполнить замену определения профиля в pom.xml, а также переименовать его в res, но этоне похоже на работу.Я всегда получаю исходную папку res в сборку и в этом случае выдает ошибку дубликатов.

Означает ли это, что обмен должен происходить внутри res?Я не указывал resourceDirectory в конфигурации плагина android maven.

Я много гуглил, но до сих пор не нашел никого с такой же проблемой.Как это решить?Есть ли какая-то общая схема для этого?

Большое спасибо заранее

Ответы [ 2 ]

6 голосов
/ 15 марта 2012

Исходя из ответа yorkw, это решение работает для меня:

Для каждого профиля необходимо добавить resourceDirectory в конфигурацию плагина android maven.

Например:

<resourceDirectory>${project.basedir}/res-customer1</resourceDirectory> <resourceDirectory>${project.basedir}/res-customer2</resourceDirectory>

и т.д ...

1 голос
/ 27 ноября 2013

Если вы хотите использовать разные ресурсы или ресурсы для разных профилей Buid, и если вы даже хотите объединить несколько таких каталогов каждой сборки по-разному, вы можете следить за этим замечательным сообщением в блоге:

https://ebuddytechblog.wordpress.com/2013/04/08/branded-android-builds-using-maven/

...