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.

  • Problema con ComposeShader en Android 4.1.1
  • Definición del estilo de origen XML de Gradient / Shape / Corners
  • ¿Puede el color central ser reposicionado en un androide radial-gradiente dibujable?
  • Cómo hacer un doble degradado con XML (iphone like)
  • Degradables de Android: mala calidad de las capturas de pantalla en Eclipse
  • Sweep Gradient: Qué es y sus ejemplos
  • Cómo hacer gradiente de fondo en android
  • Gradle para Android, AARs y dependencias condicionales
  • Publica la biblioteca de android en jcenter: gradle bintrayUpload no encuentra bibliotecas
  • Gradiente circular en android
  • Gradiente de Android en Lollipop no funciona. - API 21
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.