Usar Maven con Android

La idea de este artículo es presentar los pasos necesarios para configurar Eclipse para utilizarlo con Maven en proyectos Android. Estos pasos son:

Descargar herramientas

Descargamos Eclipse si no lo tuviesemos (en mi caso utilizo Eclipse Classic 3.7.2) desde http://www.eclipse.org/downloads/.

Configuramos el sdk de Android i el ADT (http://android.com)

Descargamos Maven desde http://maven.apache.org/download.html (para el ejemplo usamos 3.0.4)

Asumimos que instalamos las herramientas en D:eclipse, D:android-sdk-windows y en D:maven si tu ruta es diferente, cambialo donde toque.

Instalar plugin de Eclipse para Maven (m2Eclipse)

Desde http://www.eclipse.org/m2e/download/ podemos ver las diferentes rutas de descarga.

En nuestro caso, en Eclipse, vamos a Help, Install New Software… e introducimos http://download.eclipse.org/technology/m2e/releases como url.

Configurar el plugin de Maven

En mi caso configuro siempre lo siguiente:

En la venta de preferencias (Window, Preferences) seleccionamos MavenInstallations. Allí podemos añadir el ejecutable de Maven. Así nos aseguramos que el plugin y la linea de comandos utilizan la misma versión.

Instalar el conector de Android para Maven

Ahora hay que decirle al plugin que “entienda” los proyectos de Android. Para eso tenemos que instalar el conector de Android. Dentro de la pantalla de preferencias, en MavenDiscovery, hacemos clic en Open Catalog. Se nos abrirá el listado de conectores.

Buscamos ‘Maven Integration for Android Development Tools’ (escribe Android y acabarás antes) y lo instalamos.

Ya estamos listos para trabajar con Maven para Android.

Configurar un proyecto para usar Maven

Nunca he conseguido que creando un proyecto nuevo de Maven directamente funcione. Lo que hago es crear un proyecto normal, y luego, podemos hacer clic con el botón derecho sobre la raiz del proyecto, y seleccionar Configure, Convert to Maven Project.

Así se nos transformará en un proyecto de Maven, pero nos toca configurar el POM. Básicamente, utilizo la siguiente plantilla:

Y aquí algunos de los valores a configurar:

  • GROUP_ID_DEL_PROYECTO: la ruta canónica del paquete (p.ej.: com.sergiandreplace)
  • NOMBRE_DEL_PROYECTO: el identificador del paquete que completa la ruta canónica.
  • VERSION_DE_ANDROID: la versión de Android que utilizamos en la app. Ojo que no valen todas, sólo aquellas que estén en el repositorio. Podemos consultar la lista aquí: http://mvnrepository.com/artifact/com.google.android/android
  • NOMBRE_FINAL_APK: pues eso, el nombre que tendrá el fichero final cuando compilemos.
  • VERSION_DE_API: versión de api utilizada para compilar en formato numérico. P.ej: 7 para 2.1

Si ahora ejecutamos desde la linea de comandos en la carpeta del proyecto

Se nos instalaran las dependencias necesarias
Ahora si ejecutamos

Se nos compilará e instalará en los moviles disponibles desde adt.

También podemos hacer un compilado/ejecución de toda la vida en Eclipse.

Quedan cosas por configurar (donde hacer deploy, certificados, etc) pero esto ya depende de cada proyecto, aquí sólo he mostrado lo mínimo para empezar.

7 Comments

  1. androideverde · July 18, 2012 Reply

    Muchas gracias por el post! Muy útil!!!

    Una cosa, yo he seguido tus instrucciones y he tenido que hacer algún paso más:
    – crear la variable JAVA_HOME y hacer que apunte al raíz del JDK (en mi caso C:Program FilesJavajdk1.6.0_25)
    – añadir %JAVA_HOME%bin al PATH
    – crear la variable ANDROID_HOME y hacer que apunte al raíz del SDK (en mi caso C:Catdroidandroid-sdk-windows)

    Otra cosilla. En la lista de conectores, por “android” solo he encontrado “Android connector”, no “Maven Integration for Android Development Tools”.

    Con estos detalles añadidos ya funciona todo.

    Muy buena guía, me ha servido de mucho!

  2. mario · November 6, 2012 Reply

    Una pregunta sin mala leche, ¿que te aporta Maven para el desarrollo Android?

  3. sergi · November 6, 2012 Reply

    Ui Mario, esa es la pregunta del millón.

    En principio la resolución de dependencias (que en Android tampoco es que sea un problema muy grande).

    Además la posibilidad de automatizar tareas e integrarse en un entorno de desarrollo continuo como Jenkins

    En mi caso, yo estoy también evaluando si vale la pena, no te creas

    Una de las grandes ventajas para mi es la de tener un repositorio centralizado propio con las librerias que desarrollamos para tener un mantenimiento de las mismas. Además del hecho de unificar herramientas con la gente de J2EE

  4. Alberto · November 15, 2012 Reply

    Una duda rápida. Uso Juno, con Windows 7. Cómo accedo a la línea de comandos para introducir el mvn install?

    Gracias!

  5. sergi · November 15, 2012 Reply

    Click en inicio, escribes CMD y presionas Intro :)
    También puedes pulsar Logo+R, cmd e Intro

    • Alberto · November 15, 2012 Reply

      Gracias, es lo que probé de entrada, pero una vez dentro de la carpeta del proyecto, al intentar ejecutar el comando, no identificaba mvn como un comando válido. ¿Alguna idea?

      ¡Gracias de nuevo!

      • ssmaoss · August 9, 2013 Reply

        You must add the instalation path of your maven to the enviroment variable PATH on windows to can work, also in linux is the same.

        Example:
        M2_HOME=C:pathtoyourmaveninstaltion
        M2=%M2%bin
        PATH=%PATH%;M2

Leave a Reply