Générer la Javadoc avec Android plugin Gradle
Comment puis-je générer la documentation Javadoc pour un projet Android en utilisant le nouveau système de build Gradle?
Voici ce que j'ai mais ça ne fonctionne pas.
task generateJavadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
ext.cp = android.libraryVariants.collect { variant ->
variant.javaCompile.classpath.files
}
classpath = files(ext.cp)
}
Le principal problème est que je n'ai pas le approprié android.jar sur le chemin de la classe de sorte que certaines des liens de la documentation Javadoc ne sont pas résolus. Je dois trouver un moyen pour obtenir toutes les bocaux sur le chemin de la classe.
Un autre problème avec l'approche que j'ai adoptée est-il recueille les chemins de classe pour tous les construire variantes, plutôt que de choisir un.
- double possible de Gradle, Javadoc et Android documentation
Vous devez vous connecter pour publier un commentaire.
Pour Android plugin gradle 1.1.2+ (com.android.outils.construire:gradle:1.1.2+)
libraryVariants - ne fonctionne plus
utilisation:
destinationDir = file("../javadoc/") - localiser la documentation javadoc à la racine du répertoire du projet (de cette façon, jenkins javadoc plugin peut trouver et afficher dans le Document spécial panneau)
failOnError faux - pour supprimer les avertissements qui peuvent causer l'échec de build jenkins
.all
approche, qui est de longue haleine et ne peut pas être appelé à d'autres tâches longues. Cette approche est bien plus propre et utilisable.Gradle 1.11 - Plugin Gradle 0.10.0
Remplacer
android.plugin.sdkDirectory
parandroid.sdkDirectory
"generate${variant.name.capitalize()}Javadoc"
pour un peu plus de formaté le nom de la tâche (p. ex.,generateReleaseJavadoc
contregeneratereleaseJavadoc
).options.linksOffline("http://d.android.com/reference", "${android.plugin.sdkDirectory}/docs/reference");
au lieu deoptions.links("http://d.android.com/reference/");
. Sinon, il a donné un avertissement et ne serait pas d'accéder à l'Android de la documentation. En outre, il semble fonctionner à merveille!ext.androidJar
serait de tout simplement utiliserandroid.bootClasspath
.classpath = files(variant.javaCompile.classpath.files) + files(android.bootClasspath)
La solution que j'ai fini par régler sur est comme suit:
Xavier Ducrohet confirmé ce est la façon de le faire (avec des réserves) sur l'adt-dev groupe, https://groups.google.com/forum/#!searchin/adt-dev/javadoc/adt-dev/seRizEn8ICA/bafEvUl6mzsJ.
variant.javaCompileProvider.get().source
etvariant.javaCompileProvider.get().classpath
source = android.sourceSets.main.java.srcDirs classpath += variant.javaCompileProvider.get().classpath
Avec android gradle outils 1.10.+ obtenir le SDK android dir est différente de celle d'avant. Vous devez modifier les éléments suivants:
au lieu de
C'est la solution complète du problème:
android.sdkDirectory
au lieu deandroid.plugin.sdkDirectory
(plus.google.com/114432517923423045208/posts/NphSRvqAo6m)options.links("https://developer.android.com/reference/")
et pasoptions.links("https://developer.android.com/reference/reference")
Android pots semblent être dans la propriété
android.plugin.runtimeJarList
. Ce n'est pas documentée nulle part, donc il peut casser à tout moment.J'ai affiné votre solution pour travailler dans les construire variantes:
Généralement, il n'est pas judicieux de faire une javadoc sur la branche principale) car vous pouvez compter sur certaines choses du produit saveurs. Même debug vs libération pourrait avoir quelques différences. Vous pourriez bien sûr, il suffit de choisir une variante par défaut à utiliser. Donc, vous pourriez faire quelque chose comme,
Could not find property 'applicationVariants'
au 0.2.9 conseils?android.libraryVariants
que l'OP n'a lieu.exclude '**/R.html', '**/R.*.html'
task(..., dependsOn: "assemble${variant.name.capitalize()}")
d'autre javadoc peut échouer si la version n'est pas à jourIci est une version mise à jour qui utilisé pour des travaux en 2014:
plugins.findPlugin("com.android.library").getBootClasspath()
a échoué pour moi avec Gradle 2.3, Gradle Android Plugin 1.2.3. Mais ça a marché quand j'ai enlevé l'ensemble de l'ext.androidJar ligne (et à la ligne suivante ce qui l'utilise).J'ai fait de l'open source de plugin pour ça. GitHub
Ajouter cette ligne dans votre construire.gradle
Puis il suffit d'exécuter l'une des opérations suivantes:
La documentation de java peuvent être trouvés dans
module/javaDoc/
J'ai trouvé que cette solution fonctionne sur plugin Gradle 1.3.1 si vous avez des produits différentes saveurs.
Cela va créer Gradle tâches pour générer la Javadoc pour chaque produit de la saveur et de type de build. Par exemple, si le nom du module est
app
et vous avez unproduction
etdev
produit de la saveur et dedebug
etrelease
construire des types, vous aurez la suite de Gradle tâches:app/build.gradle
Un plus
Utilisation:
gradle generateJavadoc