java - 如何根据 Javadoc 警告使 gradle 构建失败

标签 java gradle javadoc

我正在使用 Java 7(尽管使用 1.6 进行编译)来编译类和 javadoc。我已经消除了所有出现的 javadoc 警告,但我的想法是如果有任何 javadoc 警告则让构建失败。

使用 Java 8,这是默认行为。但是,它在警告方面也更加严格(如果方法未列出所有@params 或@returns,我们不希望收到警告)。另外,我认为公司不会很快升级到 8,所以这是一个有争议的问题。

我希望有一些简单的标志可以设置为在出现警告时让 gradle 失败(只有 failonError)。我在想的是抓取 javadoc 进程的控制台输出。如果该输出包含 WARNINGS,那么我知道有警告,构建应该会失败。

这是我的 build.gradle 中的 javadoc block :

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
}

那么,如果没有更简单的方法来执行此操作,我该如何检查 javadoc 的控制台输出以抓取它?

最佳答案

在所有受支持的 Java 版本上都有一个非标准的隐藏 javadoc 选项 -Xwerror。因此你可以简单地做这样的事情:

if (JavaVersion.current().isJava8Compatible()) {
    tasks.withType(Javadoc) {
        // The '-quiet' as second argument is actually a hack,
        // since the one paramater addStringOption doesn't seem to
        // work, we extra add '-quiet', which is added anyway by
        // gradle. See https://github.com/gradle/gradle/issues/2354
        // See JDK-8200363 (https://bugs.openjdk.java.net/browse/JDK-8200363)
        // for information about the -Xwerror option.
        options.addStringOption('Xwerror', '-quiet')
    }
}

针对 javadoc 的官方“-Werror”的功能请求被跟踪为 JDK-8200363 .此功能现在在 JDK 15+ 中作为 -Werror 提供,-Xwerror 也可用作别名。

关于java - 如何根据 Javadoc 警告使 gradle 构建失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29519085/

相关文章:

java - 如何在运行时之前验证 RPC 调用的可变参数?

java - 手动运行Gradle的应用程序插件打包的jar

android - kotlin kdoc 中的引用资源不可点击

java - 如果我已经添加了 Maven 依赖项,我缺少什么能够导入 io.netty.handler.ssl.util.* ?

java - 如何在 HashMap 中找到作为值的对象的字段?

java - Gradle 不生成 Javadocs

android-studio - 如何修复Android Studio中的Gradle错误?

java - 为 Javadoc 注释不稳定的类/方法

android - Gradle、Javadoc 和 Android 文档

java - 为循环中的第一次迭代编程不同的行为