Javadoc排除导致导入错误

时间:2015-09-25 14:56:06

标签: java gradle javadoc

我正在调整我公司生产的库的javadoc。我们希望将javadocs排除在那些并非真正意义上用于公共消费的类中(主要是内部使用的类)。

项目使用gradle作为构建系统,并且我已经在build.gradle文件中标记了要排除的包/类。但是,这会导致错误发生。如果排除了某个类的@link,我希望得到一个警告或错误,但是当这些排除的类被简单导入时,它也会抛出错误。有没有办法包括"包括"类/包,但不为它们导出javadoc?

编辑:这里是相关的javadoc任务:

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"
}

编辑2:这是我正在谈论的错误:

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

编辑3:

看来gradle javadoc任务中的exclude与使用javadoc在命令行上使用-exclude不同。我使用CLI javadoc生成运行测试,并且我没有得到使用Gradle时发现的未找到的错误。

2 个答案:

答案 0 :(得分:2)

Javadoc需要了解导入的类。告诉javadoc在哪里找到类文件而不是带有classpath的java源代码!

我在XJC生成的代码中遇到了同样的问题,这些代码在ant环境中生成了大量的javadoc错误。 为了将它们从文档中排除但仍满足javadoc,我只是告诉javadoc任务查看bin文件夹:

imageView.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.img1));

答案 1 :(得分:0)

所以问题是您必须告诉Javadoc任务外部导入所在的位置,因此它可以在Javadoc HTML中创建(Hyper)链接。如果您不关心外部类的链接,您可以忽略这些问题:

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

根据Gradle Doc

  

指定在Javadoc生成期间遇到错误时此任务是否应该失败。如果为true,则此任务将在Javadoc错误时失败。如果为false,则此任务将忽略Javadoc错误