¿Qué es Maven en Android Studio?
Hay muchas respuestas sobre cómo usar Maven
en Android y trabajar con él.
Sin embargo , ya que ya está disponible Gradle
, que gestiona el proceso de construcción de proyectos de Android y soporta escenarios complejos en la creación de aplicaciones para Android, como Multi-distribution
y Multi-apk
,
- ¿Por qué Gradle necesita un archivo settings.gradle?
- Maven vs Ant para compilaciones automáticas en aplicaciones de Android
- ¿Qué tipo de pitfals existen para la firma de APK para Android?
- Esta dependencia me da dos versiones de un frasco. ¿Cómo puedo solucionar esto?
- Android: Dex no puede analizar código de byte de versión 52
¿Cuál es exactamente el papel de Maven
en Android Studio?
¿ Y cómo es diferente de Gradle
?
- ¿Cómo uso andengine con maven?
- Android Studio - Importación de la biblioteca Simple-Xml
- ¿Puede un AAR incluir dependencias transitivas?
- Crosswalk error en android construir en Córdoba proyecto
- Embalaje android facebook sdk como apklib con maven
- ¿Por qué falla Adb con el error ?
- ¿Es posible configurar el proyecto IntelliJ Android para trabajar con maven?
- Error al crear un proyecto de Android con Maven
La respuesta corta es: Las herramientas hacen lo mismo, pero de diferentes maneras. La diferencia es cómo puede utilizar entonces para construir su proyecto. Apache Maven va para "seguir nuestra convención" forma y Gradle le da flexibilidad. Algunos desarrolladores no quieren una nueva herramienta o no tienen tiempo para aprender a usarla correctamente.
Ahora la larga respuesta …
Para entender correctamente por qué algunos desarrolladores están asociados a Apache Maven, tenemos que buscar algunos años en el pasado.
Apache Maven
es una herramienta de automatización de la construcción como Gradle
.
Maven consiguió lanzado en 2004. Gradle
primera versión de Gradle
salió en 2007 pero él no hizo tan popular como Maven
en los días tempranos. A algunos desarrolladores no les gusta tener que aprender algo nuevo y la mayoría de las empresas no quieren arriesgarse al intercambio de una herramienta que ya funciona y domina ( Maven
) para el nuevo chico en el bloque.
Gradle se hizo popular cuando se desarrolló el desarrollo de Android. El proyecto de Android tiene una estructura de proyecto diferente de los proyectos Java EE / Web. Intentar usar Maven en el proyecto de Android sólo se siente antinatural, la herramienta no estaba preparada para proporcionar flexibilidad.
Hasta ahora, Apache Maven puede ser utilizado en proyectos sencillos de Java EE sin ser un dolor en el culo si ya conoce las convenciones forzadas. Así que los desarrolladores que no son conscientes de Gradle / no se puso en contacto con las aplicaciones de Android no tienen una motivación para cambiar a otra herramienta.
En mi opinión, Gradle
es mejor que Apache Maven
en todos los sentidos que te puedas imaginar. Te da flexibilidad e intenta no interponerse en tu camino, una "característica" que no puedes encontrar en Apache Maven
. Si no sigue Apache Maven
ciclo de vida de Apache Maven
, su compilación fallará, eso es todo.
Por ejemplo, su código se puede distribuir a través de muchos directorios en cualquier tipo de diseño si está utilizando Gradle
. Si estás en Maven
y no sigues la 'convención', perderás algunas horas cambiando tu pom (archivo de compilación de Maven
) para poder entender y manejar tu estructura de carpetas.
Por ejemplo: El código fuente de Java debe estar en la carpeta src/main/java
. Si tienes un proyecto antiguo y la estructura es src/java
, lo siento, no tienes ninguna garantía de que todos los plugins de Maven se ejecutarán como se esperaba.
Gradle
nos hace un favor y pone más características a la comparación en un gráfico muy organizado. Echar un vistazo. https://gradle.org/maven_vs_gradle/