Проблема
В предыдущем блоге для создания проекта Android использовалась утилита сборки Apache Ant
. Тем не менее многие организации собираются или уже перешли от утилиты Ant
к каркасу Maven
из-за управления зависимостями, предоставляемого Maven
. Фактически Maven
— почти наверняка самый широко используемый инструмент создания проектов в среде Java. Система Ant не обрабатывает зависимости самостоятельно; хотя эта возможность может быть привита (с помощью менеджера пакетов Apache Ivy
), более короткие конфигурационные файлы Maven
в большинстве случаев оказываются лучше всех.
Решение
Используйте каркас Apache Maven
. Используйте архетип Maven для создания вашего проекта и применяйте Maven для его создания и запуска.
Обсуждение
Существует несколько подходов к использованию каркаса Apache Maven для разработки проектов Android. Вот один, который я проверил, основываясь на архетипах maven-android-archetypes
, разработанных командой Akquinet
:
$ mvn archetype:generate \
-DarchetypeArtifactId=android-quickstart \
-DarchetypeGroupId=de.akquinet.android.archetypes \
-DarchetypeVersion=1.0.8 \
-DgroupId=com.androidcookbook \
-DartifactId=android-demo \
-Dplatform=17 \
-Dpackage=com.androidcookbook.hellomaven
Большинство аргументов -D
очевидны, аргумент platform
— это уровень API. Вы можете указать ряд других параметров и вариантов, включая тестовые проекты. Создав проект, соберите его:
$ mvn clean package
Перед следующим шагом вы должны подключить устройство или запустить эмулятор:
$ mvn android:deploy
# (не mvn deploy!) эта команда выполняет распаковку и установку,
# но не запуск приложения
$ mvn android:run # Эта команда запускает приложение
Каркас Maven и его Android-модуль предлагают поддержку для других операций, включая подписание сборки АРК для выпуска.
Существуют также подключаемые модули Eclipse для Maven, которые включены в состав последних сборок Eclipse и используют компонент Marketplace для установки подключаемых модулей М2Е и М2Е-Android. С помощью интегрированной среды разработки Eclipse можно создать точно такой же проект, как и с помощью каркаса Maven. Вы можете создать минимальные структуры проекта Eclipse, используя команду mvn eclipse:eclipse
, и превратить их в полный проект М2Е, щелкнув правой кнопкой мыши на проекте в окне Project Explorer и выполнив команду Configure → Convert to Maven Project (Конфигурировать → Конвертировать в проект Maven). Это было сделано для создания многих файлов Eclipse в загружаемой версии этого проекта.
Кстати, если вы получите ошибку Eclipse в вашем РОМ-файле, в котором сообщается: “Plugin execution not covered by lifecycle configuration” (“Выполнение подключаемых модулей не предусмотрено конфигурацией жизненного цикла”), можете превратить его в предупреждение или даже игнорировать в настройках Eclipse с помощью команды Eclipse Preferences → Maven → Errors/Warnings → Plugin execution not covered by lifecycle configuration → Warning (Предпочтения Eclipse → Maven → Ошибки/ Предупреждения → Выполнение подключаемых модулей не предусмотрено конфигурацией жизненного цикла → Предупреждение), как показано на рис. 1.
Рис. 1. Каркас Maven: выполнение подключаемого модуля не предусмотрено конфигурацией жизненного цикла
См. также
- Введение в архетипы компании Akquinet
- Исходные коды артефактов
- У меня есть экспериментальный архетип Maven, который создает проект Maven, который также должен работать со средами интегрированной разработки Eclipse и Android Studio; вы можете попробовать его, обратившись к репозиторию