Documentation Gradle, Javadoc et Android
J'utilise maintenant Gradle pour tous mes projets, et même pour la génération javadoc.
android.libraryVariants.all { variant ->
task("generate${variant.name}Javadoc", type: Javadoc) {
title = "$name $version API"
source = variant.javaCompile.source
ext.androidJar = "${android.plugin.sdkDirectory}/platforms/${android.compileSdkVersion}/android.jar"
ext.googlePlayServicesJar = "${android.plugin.sdkDirectory}/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar"
classpath = files(variant.javaCompile.classpath.files, ext.androidJar, ext.googlePlayServicesJar)
options.links("http://docs.oracle.com/javase/7/docs/api/");
options.links("http://d.android.com/reference/");
//options.linksOffline("http://d.android.com/reference", "${android.plugin.sdkDirectory}/docs/reference");
exclude '**/BuildConfig.java'
exclude '**/R.java'
}
}
Avec ce code, tout fonctionnait, sauf une chose: les objets API Android réguliers comme Activity, Bitmap, etc. Les liens de Java fonctionnent bien.
La documentation finale générée ne relie pas à http://d.android.com/reference .
J'ai essayé les deux options.liens() et options.linksOffline()
sans succès.
MODIFIER
Grâce à @ejb, le problème était que vous ne pouvez pas fournir plusieurs options.links()
en même temps.
J'ai donc utilisé à la fois options.links()
pour la documentation de Java et options.linksOffline()
pour la documentation d'Android:
options {
links("http://docs.oracle.com/javase/7/docs/api/");
linksOffline("http://d.android.com/reference", "${android.plugin.sdkDirectory}/docs/reference");
//stylesheetFile = new File(projectDir, "stylesheet.css");
}
2 answers
J'ai pu lier avec succès à http://d.android.com/reference en utilisant l'extrait de code suivant qui est fonctionnellement exactement ce que vous avez (pour autant que je sache).
android.libraryVariants.all { variant ->
task("generate${variant.name.capitalize()}Javadoc", type: Javadoc) {
// title = ''
// description = ''
source = variant.javaCompile.source
classpath = files(variant.javaCompile.classpath.files, project.android.getBootClasspath())
options {
links "http://docs.oracle.com/javase/7/docs/api/"
linksOffline "http://d.android.com/reference","${android.sdkDirectory}/docs/reference"
}
exclude '**/BuildConfig.java'
exclude '**/R.java'
}
}
Il y a donc autre chose qui ne va pas ici.
Vous devez construire le javadoc hors ligne, car il ne semble pas que le package-list
soit disponible sur le chemin du service Web. Peut-être double vérifier que vous avez réellement les documents chargés localement, et assurez-vous qu'il y a un {[2] } dans le /[android-sdk]/docs/reference
répertoire.
Si vous ne pouvez toujours pas le comprendre, vous pourriez peut-être publier une sortie.
Une autre chose que vous pourriez vérifier est le ./build/tmp/[taskname]/javadoc.options
, le head
dudit fichier devrait afficher les options appropriées soigneusement définies. Les choses à vérifier incluraient l'inclusion correcte de l'Android.jar dans le-classpath et la présence de linksOffline avec les arguments attendus: -linksoffline extDocURL packageListLoc
javadoc.options
doit avoir les deux options avec seulement respectifs arguments:
-linksoffline 'http://d.android.come/reference' '[sdkDir]/docs/reference'
-links 'http://docs.oracle.com/javase/7/docs/api/'
MODIFIER: android.getBootClasspath()
est plus agréable, grâce à P-chan.
Pour Android plugin Gradle 1.1.2+ (com.Android.outils.construire:gradle:1.1.+)
libraryVariants - ne fonctionne plus
Utilisation:
task javadoc(type: Javadoc) {
source = android.sourceSets.main.java.srcDirs
classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
destinationDir = file("../javadoc/")
failOnError false
}
destinationDir = fichier ("../ javadoc/") - localisez javadocs à la racine du répertoire du projet (de cette façon, le plugin jenkins javadoc pourrait le trouver et l'afficher dans le panneau de document spécial)
failOnError faux - pour supprimer les avertissements qui peuvent provoquer l'échec de construire sur jenkins
Alternative pour Gradle JavaDocs
Doxygen - croix de la documentation de référence de l'outil.
Peut être exécuté à partir de l'interface utilisateur ou du terminal: http://www.stack.nl / ~dimitri/doxygen/manual/doxygen_usage.html
Génération de javadoc disponible jeter java outil: 'javadoc'
Exécuter à partir de la ligne de commande:
javadoc -d docs -sourcepath app/src/main/java -subpackages com
docs - dossier de destination