Configuración de biblioteca de soporte de Android con maven

Soy algo nuevo para Android.

Estoy configurando un módulo maven para la aplicación de Android (está dentro de un proyecto de múltiples módulos existente), que utiliza las Bibliotecas de soporte de Google (v4, v7, v13). ¿Cuál es la forma más adecuada de hacerlo funcionar con maven?

Quiero que mi proyecto sea capaz de comstackr con Jenkins (Maven), por lo que no puedo vincular ningún proyecto IDE específico ni ningún medio de dependencias que no sean maven.

Cualquier opción para combinar maven / gradle en Jenkins también es aceptable.

    desafortunadamente esas bibliotecas no están en el repository maven central. por lo que debe usar maven-android-sdk-deployer ( enlace ) para instalar las bibliotecas en su repository maven. luego agregue las bibliotecas necesarias a su archivo pom.xml como se describe en el archivo Léame.

    Además de maven-android-sdk-deployer , si siempre tienes instalado SDK de Android con extras de Google como yo, puedes definir un repository local en tu archivo POM de proyectos y dejar que maven descargue las dependencias de este local.

    La razón detrás de esto es que Google ya lanzó los complementos adicionales en un diseño de directorio compatible con el repository maven. Para mi propia máquina, es así:

    jerry-mac-mini:android jerry$ pwd /Users/jerry/adt-bundle-mac-x86_64-20130917/sdk/extras/android jerry-mac-mini:android jerry$ tree m2repository m2repository ├── NOTICE.txt ├── com │  └── android │  └── support │  ├── appcompat-v7 │  │  ├── 18.0.0 │  │  │  ├── appcompat-v7-18.0.0.aar │  │  │  ├── appcompat-v7-18.0.0.aar.md5 │  │  │  ├── appcompat-v7-18.0.0.aar.sha1 │  │  │  ├── appcompat-v7-18.0.0.pom │  │  │  ├── appcompat-v7-18.0.0.pom.md5 │  │  │  └── appcompat-v7-18.0.0.pom.sha1 │  │  ├── 19.0.0 │  │  │  ├── appcompat-v7-19.0.0.aar │  │  │  ├── appcompat-v7-19.0.0.aar.md5 ............. 

    Entonces, solo necesito poner algunas líneas adicionales en mi archivo POM como este, y el “env.ANDROID_HOME” es la variable de entorno apuntada a la ruta de instalación de Android SDK.

       android-support file://${env.ANDROID_HOME}/extras/android/m2repository   ......  com.android.support support-v4 19.0.1  

    Después de estos pasos, Maven en mi ADT habilitado Eclipse y la consola están felices de resolver las dependencias deseadas, como esta:

     jerry-mac-mini:android-app-project jerry$ mvn dependency:tree [INFO] Scanning for projects... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building android-app-project 0.0.5-SNAPSHOT [INFO] ------------------------------------------------------------------------ Downloading: file:///Users/jerry/adt-bundle-mac-x86_64-20130917/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.pom Downloaded: file:///Users/jerry/adt-bundle-mac-x86_64-20130917/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.pom (403 B at 28.1 KB/sec) Downloading: file:///Users/jerry/adt-bundle-mac-x86_64-20130917/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.jar Downloaded: file:///Users/jerry/adt-bundle-mac-x86_64-20130917/sdk/extras/android/m2repository/com/android/support/support-v4/19.0.1/support-v4-19.0.1.jar (621 KB at 16783.8 KB/sec) [INFO] [INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ android-app-project --- [INFO] team.apollo:android-app-project:apk:0.0.5-SNAPSHOT [INFO] +- com.google.android:android:jar:2.3.3:provided [INFO] | +- org.apache.httpcomponents:httpclient:jar:4.0.1:provided [INFO] | | +- org.apache.httpcomponents:httpcore:jar:4.0.1:provided [INFO] | | \- commons-codec:commons-codec:jar:1.3:provided [INFO] | +- org.khronos:opengl-api:jar:gl1.1-android-2.1_r1:provided [INFO] | +- xerces:xmlParserAPIs:jar:2.6.2:provided [INFO] | \- org.json:json:jar:20080701:provided [INFO] +- com.android.support:support-v4:jar:19.0.1:compile [INFO] +- com.google.code.gson:gson:jar:2.2.2:compile [INFO] +- de.mindpipe.android:android-logging-log4j:jar:1.0.3:compile [INFO] \- log4j:log4j:jar:1.2.16:compile [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.339s [INFO] Finished at: Mon Mar 24 14:32:00 CST 2014 [INFO] Final Memory: 10M/325M [INFO] ------------------------------------------------------------------------ 

    Me acabo de encontrar con el mismo problema y terminé desplegándome en un repository público de gitgub.

    Si aún necesita usarlo, puede hacer una de las siguientes cosas:

    Agregue el repository github a la sección de repositorys en su pom.xml:

      android.support-mvn-repo https://raw.github.com/kmchugh/android.support/mvn-repo  true daily   

    Luego puede agregar la dependencia de la siguiente manera:

       uk.co.icatalyst android-support-v4 18 compile  

    O bien, bifurque el repository, luego puede usar su propia URL para la URL del repository.

    [Editar] He actualizado las bibliotecas, una dependencia alternativa sería:

      com.android.support support-v4 18.0.0 compile  

    Y para el gridlayout:

      com.android.support gridlayout-v7 18.0.0 compile  

    Simplemente he usado la función de scope del sistema proporcionada por maven

      com.google.android support-v4 19.0.1 system ${env.ANDROID_HOME}/extras/android/support/v4/android-support-v4.jar  

    Recomendaría mantener los artefactos de Android como parte de su principal repository de MAVEN. Al usar dicho enfoque, escapará a las configuraciones adicionales y, como resultado, a cualquier mezcolanza. Entonces podrá usar archivos POM simples para todos sus proyectos del lado del cliente.

    Para hacer esto o ejecutar un comando como este:

     mvn install:install-file -DgroupId=com.google.android -Dversion=23.1.1 -Dpackaging=jar -DartifactId=support-v13 -Dfile=support-v13-23.1.1-sources.jar 

    o simplemente copie ./extras/android/m2repository/com/android/ en ./rootMavenRepo/com/google/android de su repository.

    Gracias a Google. Ahora puedes hacer esto

    • Asegúrate de que la sección de repositorys incluya un maven

     allprojects { repositories { jcenter() maven { url "https://maven.google.com" } } } 
    • Agregue la biblioteca de soporte a la sección de dependencias

     dependencies { ... compile "com.android.support:support-core-utils:25.3.1" }