Javadoc Exclude provoquant des erreurs lors de l'importation


Je cherche à modifier les javadocs pour la bibliothèque que mon entreprise produit. Nous cherchons à exclure javadocs des classes qui ne sont pas vraiment destinées à la consommation publique (principalement des classes utilisées en interne).

Le projet utilise gradle comme système de construction, et j'ai marqué les paquets/classes que nous voulons exclure dans la construction.fichier gradle. Cependant, ce qui est à l'origine des erreurs de se produire. Je m'attends à recevoir un avertissement ou une erreur s'il y a @link vers une classe qui est exclue, mais c'est aussi lancer des erreurs lorsque ces classes exclues sont simplement importées. Existe-t-il un moyen d ' "inclure" les classes/packages, mais PAS d'exporter le javadoc pour eux?

Edit: Voici la tâche javadoc pertinente:

task gendocs(type: Javadoc) {
    options.stylesheetFile = new File("./assets/doc_style.css")
    String v = "${SEMVER}"
    version = v.replace("_", '.')
    title = "SweetBlue ${version} API"
    options.windowTitle = "SweetBlue"
    options.memberLevel = JavadocMemberLevel.PROTECTED
    options.author = true
    options.linksOffline('http://d.android.com/reference', System.getenv("ANDROID_HOME") + '/docs/reference')    
    destinationDir = new File("${BUNDLE_FOLDER}/docs/api")
    source = sourceSets.main.allJava
    classpath += configurations.compile
    exclude "com/idevicesinc/sweetblue/backend"
    exclude "com/idevicesinc/sweetblue/utils/Utils**.java"
    exclude "com/idevicesinc/sweetblue/utils/UpdateLoop.java"
    exclude "com/idevicesinc/sweetblue/utils/Pointer.java"
    exclude "com/idevicesinc/sweetblue/utils/HistoricalDataQuery.java"
}

Edit 2: Voici l'erreur dont je parle:

SweetBlue/src/com/idevicesinc/sweetblue/BleCharacteristic.java:5: error: cannot find symbol
import com.idevicesinc.sweetblue.utils.Utils;                                      
symbol:   class Utils
location: package com.idevicesinc.sweetblue.utils

Modifier 3:

Il semble que l'exclusion dans une tâche gradle javadoc n'est PAS la même chose que l'utilisation de-exclude sur la ligne de commande avec javadoc. J'ai exécuté un test en utilisant la génération CLI javadoc, et je n'ai PAS obtenu le pas j'ai trouvé des erreurs que je fais lors de l'utilisation de Gradle.

Author: Ryan Bis, 2015-09-25

2 answers

Javadoc doit connaître la classe importée. Dites à javadoc où trouver les fichiers de classe plutôt que le code source java avec le chemin de classe!

J'ai eu le même problème avec le code généré par XJC qui génère de nombreuses erreurs javadoc dans un environnement ant. Afin de les exclure des documents tout en satisfaisant javadoc, j'ai simplement dit à la tâche javadoc de regarder dans le dossier bin:

<target name="javadoc" description="create Javadoc documentation">
    <javadoc ...lots of irrelevant attributes skipped...>
        <fileset dir="src">
            <include name="**/*.java"/>
            <exclude name="my/jaxb/generated/source/*.java"/>
        </fileset>
        <classpath>
            <path refid="myclasspath_to_referenced_libraries"/>
            <pathelement location="bin"/>
        </classpath>
    </javadoc>
</target>
 2
Author: Stefan Bormann, 2016-08-31 10:20:25

Donc, le problème est que vous devez indiquer à la tâche Javadoc où se trouvent les importations externes, afin qu'elle puisse créer des liens (Hyper) vers elle dans le HTML Javadoc. Si vous ne vous souciez pas des liens vers des classes externes, vous pouvez ignorer ces problèmes avec:

task gendocs(type: Javadoc) {
    failOnError false
    ...
}

Selon le Gradle Doc :

Spécifie si cette tâche doit échouer lorsque des erreurs sont rencontrées lors de la génération de Javadoc. Lorsqu'elle est vraie, cette tâche échouera en cas d'erreur Javadoc. Lorsqu'elle est fausse, cette tâche ignorera Erreurs Javadoc

 0
Author: for3st, 2017-12-05 22:15:38