我正在调整我公司生产的库的javadocs.我们希望将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"
}
Run Code Online (Sandbox Code Playgroud)
编辑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
Run Code Online (Sandbox Code Playgroud)
编辑3:
似乎在gradle javadoc任务中排除与在javadoc命令行上使用-exclude不同.我使用CLI javadoc生成运行测试,并且我没有得到使用Gradle时发现的未找到的错误.
我正在使用Java 7(尽管使用1.6编译)来编译类和javadoc.我已经消除了所有出现的javadoc警告,但是如果有任何javadoc警告,那么想法是让构建失败.
使用Java 8,这是默认行为.但是,在警告方面它也更加严格(如果方法没有列出所有@params或@returns,我们不希望发出警告).另外,我不认为公司很快会转向8,所以这是一个没有实际意义的问题.
我希望有一些简单的标志设置为gradle失败,如果有警告(只有failonError).我在想的是刮掉javadoc进程的控制台输出.如果该输出包含警告,那么我知道有警告,并且构建应该失败.
这是我的build.gradle中的javadoc块:
task gendocs(type: Javadoc) {
options.stylesheetFile = new File("./assets/doc_style.css")
options.windowTitle = "OurTitle"
options.memberLevel = JavadocMemberLevel.PROTECTED
options.author = true
options.linksOffline('http://d.android.com/reference', System.getenv("ANDROID_HOME") + '/docs/reference')
String v = "${SEMVER}"
version = v.replace("_", '.')
destinationDir = new File("${BUNDLE_FOLDER}/docs/api")
source = sourceSets.main.allJava
classpath += configurations.compile
}
Run Code Online (Sandbox Code Playgroud)
所以,如果没有更简单的方法来做到这一点,我如何检查javadoc的控制台输出来刮掉它?