Подтвердить что ты не робот

Можно ли настроить проект IntelliJ Android для работы с Maven?

Я хочу работать с зависимостями Maven в проекте IntelliJ Android. Кто-нибудь успешно сделал это?

4b9b3361

Ответ 1

Я использую IntelliJ IDEA (в настоящее время v11.0.2, build 111.277) как для Ubuntu 11.10, так и для Mac OS X 10.7.3 для работы над проектами Android на Maven и по большей части работает хорошо. Хорошая вещь об использовании IntelliJ с Android и Maven заключается в том, что вся поддержка уже встроена - дополнительных модулей IDE для установки нет.

В качестве примера хорошего рабочего проекта Android Maven, который можно открыть с помощью IntelliJ, вы можете использовать исходный код Gaug.es для Android с открытым исходным кодом для Android приложение от GitHub (не все разработчики GitHub используют IntelliJ, лично я это делаю - Eclipse также используется для работы над этим проектом).

Первым шагом для бесперебойной работы, очевидно, является обеспечение правильного построения вашего проекта с использованием только простого Maven в командной строке - хотя в вопросе напрямую не спрашивают об этом, я бы посоветовал эти предварительные условия как минимум

  • Java 6
  • Maven v3.0.3
  • android-maven-plugin v3.1.1
  • Android SDK r16 (если вы загрузили SDK до r15, вам, вероятно, лучше отключить все это и загрузить его снова, поскольку макет каталога изменился)

Если вы можете mvn install родительский pom вашего проекта, вы можете перейти к фактической работе с ним с помощью IntelliJ.

  • Если это первый раз, когда вы открываете проект с помощью IntelliJ, вы все равно можете открыть его в качестве проекта, вам просто нужно выбрать родительский файл pom.xml в диалоговом окне "Открыть проект".
  • Убедитесь, что IntelliJ знает, где Java SDK. IntelliJ, даже несмотря на то, что он работает на Java, не позволяет автоматически определять местоположение SDK. Вы должны это сказать. Go Project Structure, Platform Settings, SDKs, а затем отредактируйте Java SDK, если он отображается красным цветом, указывая ему путь к вашему SDK Java 6.
  • В этом же диалоговом окне Project Structure установите Project SDK в соответствующую версию Android, а в Project установите Project compiler output в любое имя каталога, которое вам нравится - это значение требуется для выполнения команды "Сделать", но также переопределены вашими подмодулями, чтобы с уверенностью указывать на каталоги Maven 'target'.
  • Дважды проверьте, что все данные Maven были проанализированы IntelliJ. У вас должна быть вкладка Maven Projects. Нажмите кнопку Reimport All Maven Projects (выглядит как две стрелки, преследующие друг друга). Если IntelliJ предложит вам включить авто-импорт, перейдите к нему. Теперь у вас должен быть хотя бы один модуль, указанный на вкладке Maven Projects, больше, если у вас также есть проект интеграции.

На этом этапе у вас должен быть достаточно значимый опыт IDE. Материал, который должен работать:

  • Не должно быть никакого кода, подчеркнутого красным цветом без видимой причины.
  • Все импорты (будь то Android SDK, Java, ваш собственный код или apklib) должны быть распознаны. Обратите внимание, что поддержка apklib появилась только с поздней IntelliJ IDEA v10.5.
  • Рефакторинг.
  • Force regenerate R.java file должен правильно обновить файл под target/generated-sources/r/... - но это работает только в том случае, если target/generated-sources/r уже задан как исходный путь, т.е. был создан Maven и импортирован IntelliJ. Минимальной альтернативой командной строки является выполнение mvn android:generate-sources из командной строки в папке затронутого модуля.
  • Выполнение "Make" проекта в среде IDE технически работает, но опять же может потерпеть неудачу по той же причине. Я вызываю все свои сборки, используя mvn package или install в командной строке.

Материал, который может не работать:

  • Выполнение индивидуальных тестов интеграции из среды IDE (умирает с ClassNotFoundException: junit.textui.ResultPrinter)

Если IntelliJ запутался, следующие шаги, как правило, возвратят вас на дорожку:

  • mvn clean install в командной строке
  • Нажмите кнопку Reimport All Maven Projects

Некоторые советы:

  • Ваши файлы Maven pom.xml должны быть источником правды для вашей конфигурации проекта. Минимизируйте конфигурацию, специфичную для IntelliJ, которую вы выполняете в настройках проекта - некоторые из них будут подвергнуты стиранию в следующий раз, когда параметры будут повторно импортированы из Maven POM, и попытайтесь избежать передачи файлов проекта IntelliJ в исходный контроль.

Надеюсь, что это поможет!

Ответ 2

См. Начало работы с плагином maven-android.

Вот команда, которую вы можете использовать для создания рабочего шаблона sampe с структурой Maven:

mvn archetype:generate \
  -DarchetypeArtifactId=android-with-test \
  -DarchetypeGroupId=de.akquinet.android.archetypes \
  -DarchetypeVersion=1.1.0 \
  -DgroupId=com.foo.bar \
  -DartifactId=my-android-project \
  -Dpackage=com.foo.bar.android

Кстати, IntelliJ встроил поддержку maven, поэтому просто откройте pom.xml, и все будет в порядке.