Что такое Maven в Android Studio?

Есть много ответов о том, как использовать Maven в Android и работать с ним.

Однако, поскольку Gradle уже доступен, он управляет процессом сборки проектов Android и поддерживает сложные сценарии создания приложений Android, такие как Multi-distribution и Multi-apk,

Какова роль Maven в Android Studio?

И чем он отличается от Gradle?

Ответ 1

Короткий ответ: инструменты делают то же самое, но по-разному. Разница в том, как вы можете использовать их для создания своего проекта. Apache Maven придерживается принципа "следуйте нашим правилам", а Gradle дает вам гибкость. Некоторые разработчики не хотят нового инструмента или не имеют времени, чтобы научиться правильно его использовать.

Теперь длинный ответ...

Чтобы правильно понять, почему некоторые разработчики подключены к Apache Maven, нам нужно взглянуть на прошлые годы.

Apache Maven - это такой же инструмент автоматизации сборки, как и Gradle.

Maven был выпущен в 2004 году. Первая версия Gradle вышла в 2007 году, но в первые дни она не стала столь популярной, как Maven. Некоторым разработчикам не нравится узнавать что-то новое, и большинство компаний не хотят рисковать обменом уже запущенного и освоенного инструмента (Maven) на нового ребенка в блоке.

Gradle стал популярным, когда разработка Android поднялась. Проект Android отличается по структуре проекта от проектов Java EE/Web. Попытка использовать Maven на проекте Android просто кажется неестественной, инструмент не был готов предоставить гибкость.

До сих пор Apache Maven можно было использовать в простых проектах Java EE, не беспокоясь о заднице, если вы уже знакомы с принудительными соглашениями. Поэтому разработчики, которые не знают о Gradle/не связались с приложениями для Android, не имеют мотивации для перехода на другой инструмент.

На мой взгляд, Gradle лучше, чем Apache Maven во всех отношениях, которые вы могли себе представить. Это дает вам гибкость и пытается не мешать вам, "особенность", которую вы не можете найти в Apache Maven. Если вы не выполните жизненный цикл Apache Maven, ваша сборка не удастся, вот и все.

Например, ваш код может быть распределен по многим каталогам в любом виде, если вы используете Gradle. Если вы используете Maven и не соблюдаете "соглашение", вы потеряете несколько часов, изменяя ваш pom (файл сборки Maven), чтобы иметь возможность понимать и обрабатывать структуру вашей папки.

Например: исходный код Java должен находиться в папке src/main/java. Если у вас есть старый проект со структурой src/java, извините, у вас нет гарантии, что все плагины Maven будут работать должным образом.

Gradle оказывает нам услугу и помещает больше функций для сравнения в очень организованный график. Посмотри. https://gradle.org/maven_vs_gradle/