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");
}
Author: shkschneider, 2014-04-25

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.

 27
Author: ejb, 2015-03-03 09:54:36

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

 14
Author: Flinbor, 2015-04-07 12:31:47