Android gradle uploadArchives al construir

Tengo mi uploadArhives a Maven repositorio .aar publicación.

Pero tengo que ejecutar gradlew uploadArhives desde la consola todo el tiempo, cómo código para hacer que invocar con cada construcción o con la versión de construcción?

 uploadArchives { repositories { mavenDeployer { def credentials = [ userName: NEXUS_USERNAME, password: NEXUS_PASSWORD ] repository(url: MAVEN_REPO_URL, authentication: credentials) pom.artifactId = 'aaa' pom.version = version pom.packaging = 'aar' pom.groupId = 'bbb' } } } 

EDIT :

Como creo, podemos definir la función:

 def uploadToMaven = { uploadArchives } 

¿Pero cómo ejecutarlo con cada compilación?

Tengo un proyecto complejo con muchos módulos y una aplicación principal. He añadido "uploadArchives" en dos de estos módulos (porque son las bibliotecas de Android). De esta manera puedo publicar mis bibliotecas en Maven simplemente ejecutando la tarea uploadArchives desde mi aplicación principal, o usando gradle y llamando a esta tarea "uploadArchives".

Puede usar esto en su build.gradle (de la biblioteca que desea publicar) "build.finalizedBy (uploadArchives)".

Por ejemplo:

 android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { minSdkVersion 17 targetSdkVersion 23 versionCode 2 versionName "2.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } lintOptions { abortOnError false } } build.finalizedBy(uploadArchives) task wrapper(type: Wrapper) { gradleVersion = "2.8" } dependencies { compile project(':spfshared') compile 'com.google.code.gson:gson:2.4' } //task for Sonatype Nexus OSS uploadArchives { repositories { mavenDeployer { repository( url: "${nexusUrl}/content/repositories/releases") { authentication(userName: nexusUsername, password: nexusPassword) } snapshotRepository( url: "${nexusUrl}/content/repositories/snapshots") { authentication(userName: nexusUsername, password: nexusPassword) } pom.version = "2.0.0.1" pom.artifactId = "spflib" pom.groupId = "it.polimi.spf" } } } 

Después de cada compilación, uploadArchives se iniciará.

He intentado esta solución y funciona.

También probé algunas soluciones con "build.dependsOn myTaskName" sin éxito. Si quieres puedes probar, pero en mi AndroidStudio, la primera solución que funciona.

PS: He probado mi solución usando el comando "gradlew -q build" y también ejecuto específicamente la tarea "build" de mi módulo principal en Android Studio (que es mi aplicación principal).

Si desea llamar a "uploadArchives" en cada versión, simplemente reemplace "build" con la tarea de lanzamiento.

Actualización: He intentado también con estas codelines:

 defaultTasks 'uploadArchives' clean.finalizedBy(uploadArchives) assembleDebug.finalizedBy(uploadArchives) assembleRelease.finalizedBy(uploadArchives) 

Pero a veces llaman "uploadArchives" muchas veces y creo que no es una buena idea.

Lo que usted está pidiendo es muy difícil … He intentado por una hora entera 🙂

Simplemente agregue esta línea a su build.gradle:

 build.finalizedBy(uploadArchives) 

Esto crea una tarea de dependencia entre la tarea de construcción y la tarea uploadArchives, de forma que uploadArchives se llama automáticamente cada vez que la compilación se ejecuta correctamente.

  • Degradado / sombra de Google Now en la barra de estado y la barra de navegación
  • Azure Mobile Services SDK disponible a través de Gradle para Android?
  • Cambio de los colores de fondo de degradado en Android en tiempo de ejecución
  • Sweep Gradient: Qué es y sus ejemplos
  • Android gradiente radial
  • Definición del estilo de origen XML de Gradient / Shape / Corners
  • Android dibujable con fondo y degradado a la izquierda
  • Android crear iphone-como Gradiente
  • Gradiente de pan de jengibre
  • ¿Soporta Android la progresión no lineal en gradientes?
  • Gradle para Android, AARs y dependencias condicionales
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.