Возможно ли настроить Android-проект IntelliJ для работы с maven? - PullRequest
31 голосов
/ 17 сентября 2011

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

Ответы [ 2 ]

43 голосов
/ 29 февраля 2012

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

В качестве примера хорошо работающего проекта Android Maven, который можно открыть с помощьюIntelliJ, вы можете использовать исходный код приложения Gaug.es для 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.Вы должны сказать это.Перейдите Project Structure, Platform Settings, SDKs и затем отредактируйте Java SDK, если он отображается красным, указав путь к вашему Java 6 SDK.
  • В том же диалоговом окне Project Structure установитеProject SDK для соответствующей версии Android и в Project установите Project compiler output на любое имя каталога, которое вам нравится - это значение требуется для выполнения 'Make', но также переопределяется вашими подмодулями, чтобы разумно указывать наЦелевые каталоги Maven.
  • Дважды проверьте, что вся информация Maven была проанализирована IntelliJ.Вы должны иметь вкладку Maven Projects.Нажмите кнопку Reimport All Maven Projects (похоже, две стрелки гоняются друг за другом).Если IntelliJ предложит вам включить автоматический импорт, сделайте это.Теперь у вас должен быть хотя бы один модуль, перечисленный на вкладке Maven Projects, больше, если у вас также есть проект интеграционного тестирования.

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

  • Не должно быть кода, подчеркнутого красным, без видимой причины.
  • Весь импорт (будь то из Android SDK, Java, вашего собственного кода или изapklibs) должен быть распознан.Обратите внимание, что поддержка 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 в source-control.

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

12 голосов
/ 09 декабря 2011

См. Начало работы с плагином 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 из него - и все будет хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...