with warning update tools studio replaced last has configurar compile been and actualizar android android-studio gradle pom.xml aar

warning - update gradle android studio



Agregar manualmente aar con el archivo de dependencia pom/iml (1)

1. Publicación

En su proyecto aar, agregue el plugin maven-publish y agregue la configuración de plugin necesaria.

apply plugin: ''com.android.library'' apply plugin: ''maven-publish'' ... dependencies { testCompile ''junit:junit:4.12'' compile ''com.android.support:appcompat-v7:23.1.1'' compile ''com.novoda:bintray-release:0.2.7'' } ... publishing { publications { maven(MavenPublication) { groupId ''com.example'' //You can either define these here or get them from project conf elsewhere artifactId ''example'' version ''0.0.1-SNAPSHOT'' artifact "$buildDir/outputs/aar/app-release.aar" //aar artifact you want to publish //generate pom nodes for dependencies pom.withXml { def dependenciesNode = asNode().appendNode(''dependencies'') configurations.compile.allDependencies.each { dependency -> def dependencyNode = dependenciesNode.appendNode(''dependency'') dependencyNode.appendNode(''groupId'', dependency.group) dependencyNode.appendNode(''artifactId'', dependency.name) dependencyNode.appendNode(''version'', dependency.version) } } } } //publish to filesystem repo repositories{ maven { url "$buildDir/repo" } } }

Pocas cosas a tener en cuenta:

  1. Estamos utilizando una publicación maven personalizada, por lo que debe definir lo que se publica con la cláusula de artifact

  2. Tenemos que generar el pom nosotros mismos, en el código anterior estoy usando todas las dependencias de configuración de compilación, es posible que desee asegurarse de que todas las configuraciones que le interesan estén cubiertas.

La ejecución de la gradle publish se publicará en una estructura repo de maven en la carpeta repo , que luego puede consumir desde un proyecto diferente.

2. Uso publicado .aar

En un proyecto Android diferente, para usar el aar publicado en el n. ° 1: en el nivel superior build.gradle:

allprojects { repositories { jcenter() maven { url "D:/full/path/to/repo" } } }

agregue la ruta al repositorio anterior como un repositorio maven. Tenga en cuenta que puede que tenga que usar la ruta completa, porque $buildDir tiene un valor diferente para este proyecto. En tu aplicación build.gradle:

dependencies { ... other dependencies ... compile (''com.example:example:0.0.1-SNAPSHOT@aar''){transitive=true} }

transitive=true es necesario para recuperar las dependencias transitivas del archivo pom.

Como no puedo usar un experto privado para compartir mi biblioteca, estaba pensando en compartir el aar e importar en otro proyecto. El problema surge cuando los archivos aar y jar no contienen ninguna dependencia. Así que una vez que importo manualmente el aar en Android Studio (usando Importar .JAR / .AA Package) no hay dependencia, y tengo que agregar manualmente todas las dependencias nuevamente. Ya generé un archivo pom a través de una tarea gradle, aunque no puedo encontrar ninguna forma de importarlo manualmente en el proyecto.

En el archivo build.gradle generado automáticamente por el "paquete Importar .JAR / .AA" está:

configurations.maybeCreate("default") artifacts.add("default", file(''TestSample_1.0.0.aar''))

¿Hay alguna manera de agregar el archivo pom / iml también? algo como:

artifacts.add("default", file(''pomDependencies.xml''))