Gradle plugin Maven “installer” tâche ne fonctionne pas avec Android projet de bibliothèque
Je veux installer android bibliothèque de projet de référentiel maven local.
Voici construire.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android-library'
apply plugin: 'maven'
version = "1.0.0-SNAPSHOT"
group = "com.example"
repositories {
mavenCentral()
}
android {
compileSdkVersion 18
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 9
targetSdkVersion 18
}
}
Quand je le lance:
gradle install -i
ça coince ici:
Executing task ':project:installTest' due to:
Task has not declared any outputs.
Starting process 'command 'd:\android-sdk-windows\platform-tools\adb.exe''. Working directory: D:\Projects\java\....... Command: d:\android-sdk-windows\platform-tools\adb.exe install -r D:\Projects\java\.......\build\apk\project.apk
An attempt to initialize for well behaving parent process finished.
Successfully started process 'command 'd:\android-sdk-windows\platform-tools\adb.exe''
> Building > :project:installTest
Donc, la première chose que j'ai remarqué, c'est qu'il essaye pour une raison étrange, le déployer sur un appareil comme APK.
Je fais quelque chose de mal ou est-ce juste android-bibliothèque plugin n'est pas compatible avec le plugin maven?
Vous devez vous connecter pour publier un commentaire.
Edit: Veuillez vous référer à la page github (https://github.com/dcendents/android-maven-gradle-plugin) pour les dernières instructions et de trouver la bonne version à utiliser. Les instructions d'origine ne sont pas adaptés plus avec la dernière gradle libération.
Original Post:
J'ai modifié le plugin maven pour être compatible avec android bibliothèque de projets. Voir le projet sur github: https://github.com/dcendents/android-maven-gradle-plugin
Configurer votre android de projets de bibliothèque à utiliser:
Alors vous devriez être en mesure d'installer l'aar dans votre référentiel maven local à l'aide de l'installation de la tâche.
Espère que cette aide, si vous trouvez des problèmes avec le plugin s'il vous plaît laissez-moi savoir sur github et je vais le corriger.
org.gradle.api.internal.project.ProjectInternal.getPluginManager()Lorg/gradle/api/internal/plugins/PluginManagerInternal;
lors de l'utilisation de cette solutionD'élaborer sur CyclingSir de réponse, je propose d'ajouter une mention "installArchives" de la tâche. Cela devrait également prendre soin de ramasser votre artefacts personnalisés (par exemple, les sources).
Noter qu'avec Gradle Android plugin v0.5.5,
gradle install
essaie toujours d'installer quelque chose sur un appareil.repositories.mavenLocal().url
au lieu de coder en dur.Il y a une solution plus facile si vous ne souhaitez pas utiliser un plugin personnalisé. Au lieu de cela, seulement de recréer l'installation de la tâche avec un nom différent. Je l'ai appelé
installArchives
. Ajoutez le code suivant à votrebuild.gradle
:Vous pouvez maintenant exécuter
gradle installArchives
pour installer votre aar localement.Mise à JOUR 2014-11-26
La réponse ci-dessous fait sens au moment de la rédaction, quand Android Outils de construction ont été à la version 0.5.5. Il est plus que probable dépassée aujourd'hui et probablement ne fonctionne plus.
Personnellement, j'ai changé mon projets pour utiliser
android-maven-plugin
comme indiqué dans la réponse ci-dessus, le plugin fonctionne très bien avec les versions récentes d'Android Outils de construction de trop.L'ORIGINAL DE LA RÉPONSE À PARTIR DE FÉVRIER 2014
De l'édition que de l'AAR
Si vous n'avez pas l'esprit en utilisant une ancienne version de
com.android.tools.build:gradle
(c'est à dire 0.5.4), vous pouvez utiliser l'approche décrite dans ce billet de blog. Pas que, selon la discussion dans les adt-dev mailing-list, cela ne fonctionne pas dans 0.5.5.Ajoutez les lignes suivantes à votre
build.gradle
:À publier sur votre repo maven local, l'appel de cette commande:
De publication que le POT
Si votre Android Bibliothèque n'a pas coutume de ressources et peut être publié que le POT, alors vous pouvez utiliser ce qui suit
build.gradle
qui fonctionne même avec les 0.5.5.À publier sur votre repo maven local, l'appel de cette commande:
artifactId
tout en utilisantmaven-publish
..?andoroid.libraryVariants
.android-maven-plugin
dans nos projets et il fonctionne très bien pour nous.J'ai résolu le problème en définissant un téléchargement de l'archive comme décrit ici:
Gradle documentation 52.6.2. Le déploiement d'un référentiel
appel
déploie l'artefact à l' (dans mon cas local) repo Maven.
Je havn'pas trouvé une façon plus flexible pour spécifier la locale de pensions de l'url, par exemple avec mavenLocal (), mais encore le ci-dessus est adapté à mes besoins.
gradle install
pasgradle uploadArchives
, qui dans mon cas est utilisé pour télécharger des artefact de Maven Central. Je veux être en mesure d'installer dans mon référentiel maven local avant de le relâcher à Maven Central.