Должен ли я использовать Maven для приложения для Android? - PullRequest
48 голосов
/ 08 января 2012

Я пишу в основном на Java и использую Maven для всех своих проектов.Я действительно люблю использовать Maven, так как легко загрузить исходные тексты и документацию, и, что более важно, мне не нужно хранить копии внешних библиотек в папках с исходным кодом моего проекта.

У меня естьЯ начал разрабатывать приложение для Android, и я обнаружил, что плагин Android для Eclipse ужасно хорош.Тем не менее, все представленные примеры не являются проектами Maven, поэтому я не знаю, получу ли я при использовании maven все функциональные возможности от плагина Android или есть ли какие-либо недостатки в использовании Maven.

Так чтовопросы:

  1. Все ли функции из плагина Android для eclipse по-прежнему работают?
  2. Будет ли это сложнее, чем использовать обычную сборку (я считаю, что это Ant, но не уверен)
  3. Любые другие недостатки, например, размер файла конечного приложения (Maven имеет тенденцию объединять множество вещей) или трудности с получением новейших библиотек в репозитории Maven (что, вероятно, отличается для Android).

Пожалуйста, не указывайте на эту поддержку maven для проектов Android?

Я хотел бы получить ответ от опытных разработчиков.Я уже знаю, что можно использовать Maven для приложения Android.Все, что мне нужно знать, это то, должен ли я его использовать.

Ответы [ 6 ]

35 голосов
/ 08 января 2012

Текущая задача моей команды - разработать приложение для Android. Поскольку это небольшое приложение, а также своего рода прототип, мы решили оценить Maven и плагин Android Eclipse.

Короче говоря: После того, как два разработчика потратили три дня, мы не смогли получить функциональные возможности плагина Android Eclipse в нашем проекте Maven.

  • Класс R не обновлялся согласно нашим ресурсам
  • Нам не удалось запустить приложение непосредственно из Eclipse в эмуляторе и / или подключенном устройстве

Из-за этих проблем, которые искренне мешали нашей разработке, мы решили разработать приложение без Maven. Но если кто-нибудь из вас знает, как решить эти проблемы, я хотел бы услышать решение!

12 голосов
/ 01 февраля 2012

Если вам нужны быстрые тесты, вы почти вынуждены использовать maven.Как робоэлектрик это путь тогда.И они сказали, что Roboletric, вероятно, проще настроить через maven в Eclipse (они используют IDEA).

Тем не менее, вы прочитали этот пост или , что ?И какое именно сообщение об ошибке вы получили?

Типичные вещи, которые я сделал неправильно:

  1. use maven> = 3.0.3!И избегайте этой встроенной вещи в затмении.(Это было необходимо только для robolectric, если я правильно помню)
  2. используйте ~ / .m2 / settings.xml, как описано на странице robolectric, чтобы настроить путь для android
  3. указать свой android sdkтакже правильно в local.properties и в разделе «Предпочтения» -> Android -> местоположение SDK
  4. Далее прочитайте , и , или просто попробуйте mavenized robolectric сам пример, который работал для меня.Импортируйте его как существующий проект maven.
  5. Установите необходимый sdk (в моем случае 2.2_r3) через maven-android-sdk-deployer и

    export ANDROID_HOME=/path/to/android/sdk
    mvn install -P 2.2
    
  6. И упоминал ли я этот странный инструмент: m2e-android - не уверен, зачем так много вещей с Eclipse ... здесь вы можете установить его через обновления программного обеспечения http://rgladwell.github.com/m2e-android/updates/master/m2e-android/

Надеюсь, я запомнил все шаги правильно.Удачи!

Обновление:

Переключение обратно на обычный Android-контент без maven в Eclipse, так как среда IDE делает странные вещи: http://groups.google.com/group/robolectric/browse_thread/thread/ac814076c40d9df1

НоСамое приятное в этом приключении в Maven состоит в том, что теперь я могу легко тестировать и отлаживать свои проекты через NetBeans:)

2 голосов
/ 28 октября 2014

Как все мы знаем, Android Devolopment перенесен в Android Studio из Eclipse.

Android Studio система сборки состоит из плагина Android для Gradle .Gradle - это расширенный инструментарий сборки, который управляет зависимостями и позволяет определять пользовательскую логику сборки.

Система сборки не зависит от Android Studio, поэтому ее можно вызывать из Android Studio или из командной строки.

Система сборки Android Studio поддерживает удаленные зависимости Maven. Как вы знаете, Maven - это популярный инструмент управления программными проектами, который помогает организовывать зависимости проектов с помощью репозиториев.

Вы можете создавать свои приложения Android из командной строки на своем компьютере из Android Studio , таким образом, избегая путаницы плагинов, как в Eclipse.

Ознакомьтесь с этим руководством по созданию приложений Android с Maven.

См. Здесь , чтобы узнать Подробнее о Gradle build

1 голос
/ 13 апреля 2016

Я рекомендую избегать Maven для профессионального развития на Android. И вот почему:

  1. Google вкладывает время в интеграцию Android Studio с Gradle. Так что Maven это дополнительная работа сразу.
  2. Если вам нужно использовать Maven (например, для управления зависимыми библиотеками), то Gradle может использовать плагин Maven. Смотри https://docs.gradle.org/current/userguide/maven_plugin.html
  3. Сделав maven своим основным инструментом сборки, вы будете загружать огромное количество зависимостей, которые вам не нужны, и вы не будете уверены, откуда они берутся. Это идет вразрез с представлением о том, что для вашего Android-приложения вам в идеале нужен только код и платформа Android. Другими словами, вы задействуете много библиотек / кода, которые вам не нужны.

Короче говоря, использование maven в качестве инструмента сборки Android добавляет гораздо больше работы, чем необходимо, и создает кошмар управления (IMO).

Попробуйте это проиллюстрировать:

  1. Нагрейте сковороду на плите.
  2. Держи сырое яйцо. Скажите «Это ваше приложение для Android».
  3. Взломать яйцо в кастрюлю.
  4. Скажите: «Это ваше приложение для Android в любом случае с деревом-зверями-гнездами-неизвестными-кодами-загрузками, которые вам не нужны».
  5. Подождите, пока яйцо не сгорит до хрустящей корочки.
  6. Скажите: «Это ваше приложение для Android, когда сборка maven упаковала бесполезную или плохую библиотеку с вашим приложением для Android».
0 голосов
/ 20 декабря 2015

Из собственного опыта в Intellij. Я использовал Maven как инструмент автоматизации сборки для процесса разработки под Android. Я начал изучать его с помощью «Разработка приложений для Android с Maven» от Packtpub.

0 голосов
/ 07 мая 2014

Мне удалось использовать maven для разработки приложений для Android с использованием Android Development Tools для Eclipse (Kepler) и Android для Maven Eclipse 1.0.1 (m2e-android). Следуйте этим инструкциям http://rgladwell.github.io/m2e-android/. После того, как вы создадите новый проект с использованием архетипа быстрого запуска Android, измените ваш pom.xml. Добавьте версию платформы Android. Eclipse (m2e) сообщит об ошибке в файле pom.xml в объявлении android-maven-plugin, чтобы исправить эту проблему, следуя ответу александра в Ошибка в файле maven pom xml: Сборка проекта Android . Затем обновите проект maven, используя eclipse, и это должно быть.

...