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

2023-11-21

我正在使用 Java 7(尽管使用 1.6 进行编译)来编译类和 javadocs。我已经消除了出现的所有 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
}

那么,如果没有更简单的方法来做到这一点,我如何检查 javadoc 的控制台输出来抓取它?


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

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也可用作别名。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据 Javadoc 警告使 gradle 构建失败 的相关文章

  • 相当于 java PBKDF2WithHmacSHA1 的 Python

    我的任务是构建一个 API 的使用者 该 API 需要带有 UNIX 时间种子值的加密令牌 我看到的示例是使用我不熟悉的 Java 实现的 在阅读文档和其他堆栈文章后一直无法找到解决方案 使用javax crypto SecretKey j
  • 创建通用数组时出错

    public class TwoBridge implements Piece private HashSet
  • Java中如何合并两个数组?

    它不是连接而是合并两个数组 使它们成为名称值对的数组 firstarray a aa aaa secondarray b bb bbb result a b aa bb aaa bbb 最好的方法是什么 in Java public sta
  • Java中的字节和字符转换

    如果我将一个字符转换为byte然后回到char 那个角色神秘地消失了 变成了别的东西 这怎么可能 这是代码 char a line 1 byte b byte a line 2 char c char b line 3 System out
  • Java中如何对对象数组进行排序?

    我的数组不包含任何字符串 但它包含对象引用 每个对象引用都通过 toString 方法返回名称 id 作者和发布者 public String toString return name n id n author n publisher n
  • java中%%是什么意思?

    我是一名 PHP 程序员 想知道这行代码的含义 System out printf exp 3f is 3f n x Math exp x 3f 3f n 和逗号 x 是什么意思 它与C类似printf http java sun com
  • 如何在android中使用retrofit访问404错误?

    我正在使用改造 2 访问 REST API 以使用原始正文插入 JSON 数据 我从服务器获得成功响应 但在响应时收到 404 错误 我想访问404错误请帮我解决这个问题 ApiUtil getServiceClass sendFinalC
  • Java:等于和==

    让我们看看我们有 2 个对用户定义类实例的引用 即 Java 中的 a 和 b 会不会有一种情况 a b 但 a equals b 返回 false 当然 实施 equals 完全取决于班级 所以我可以写 class Foo public
  • 如何对 jar 文件资源使用 File.separator?

    我正在尝试读取位于 jar 文件中的属性文件 我想使用 File separator 因为应用程序将在多个平台上运行 我正在构建路径如下 jarFilePath jar file jarFile getAbsolutePath jarPro
  • 使用 SSL 和代理设置的 Rest 客户端获取连接超时

    我正在使用带有忽略 ssl 的 Rest 客户端 它工作正常 但在将来我尝试使用客户端证书进行的生产中将无法工作 我有 ca 证书和客户端证书 我用它创建了一个客户端 但我收到错误 Exception in thread main com
  • Android Studio:如果设置项目的背景颜色,ListView OnClick 动画将不起作用

    在我的项目中 我在 ListView 内设置了项目 由插入 ConstraintLayout 中的多个元素组成 的背景颜色 但如果背景颜色不是至少一点透明 则单击和长按的默认动画会消失 事实上 随着透明度的降低 点击元素的效果越来越不明显
  • Mockito mockStatic 无法解析符号

    我正在使用 Spring Boot 并在单元测试中 我试图模拟Files delete myFile toPath method 为此 我尝试使用Mockito mockStatic 方法 但是当我尝试使用它时 我的 IDE Intelli
  • Map:为 Integer 和 Double 类型定义方法,但不为 String 类型定义方法

    我正在尝试定义一个方法putIfGreaterThan 为了我的新Map class 给定一个键 仅当新值大于旧值时 它才会用新值替换旧值 我知道我可以通过组合来实现这一点 通过有一个private final Map
  • 无法删除临时文件夹(有时)

    当我启动应用程序时 我创建一个临时文件夹 public static File createTempDir String name throws IOException File tempDir File createTempFile na
  • 使用 gradle 部署 GAE 时出现奇怪的构建失败

    直到今天一切都运转良好 据我所知 没有改变任何东西 现在我明白了 C mypath gt gradle appengineDeploy gt Configure project WARNING You are a using release
  • 为什么从类构造函数调用的方法应该是最终的? [复制]

    这个问题在这里已经有答案了 我是一名 Java 新手 我试图理解 Oracle 网站教程中的以下行 https docs oracle com javase tutorial java IandI final html https docs
  • Bipush 在 JVM 中如何工作?

    我知道 iload 接受整数 1 到 5 但是如何使用 bipush 指令扩展到更高的数字 特定整数如何与字节码一起存储 有几种不同的指令可用于推送整数常量 最小的是iconst 指令 这些只是一个字节 因为该值是在操作码本身中编码的 ic
  • 在 Spark MLlib 上使用 Java 中的 Breeze

    在尝试从Java使用MLlib时 使用微风矩阵运算的正确方法是什么 例如scala 中的乘法很简单 matrix vector 相应的功能在Java中是如何表达的 有一些方法 例如 colon times 可以通过正确的方式调用 breez
  • 为什么我们不能在函数式接口中重载抽象方法? (爪哇)

    所以我熟悉java中的函数式接口 以及它们与lambda表达式的使用 一个函数式接口只能包含一个抽象方法 当从 lambda 表达式使用这一孤独方法时 您不需要指定其名称 因为接口中只有一个抽象方法 编译器知道这就是您正在引用的方法 Exa
  • RetentionPolicy CLASS 与 RUNTIME

    两者之间有什么实际区别RetentionPolicy CLASS and RetentionPolicy RUNTIME 看起来两者都被记录到字节码中 并且无论如何都可以在运行时访问 无论如何 两者都可以在运行时访问 那不是那个javado

随机推荐

  • 标准化直方图 y 轴大于 1

    有时 当我使用seaborn的displot函数创建直方图时 norm hist True y轴小于PDF的预期值1 其他时候它的值大于一 例如 如果我跑 sns set x np random randn 10000 ax sns dis
  • Homebrew:没有 smpeg 的公式

    我正在尝试使用 Python3 在 Mac OS 10 6 8 上安装 Pygame 我正在尽力遵循此处的说明 http florian berger de en articles installing pygame for python
  • 使用 PySerial 从 Arduino 到 Raspberry Pi 的串行接收在一段时间后停止

    我正在开发一个项目 其中我必须一次接收大约 25 个字符的数据 以便在 Raspberry Pi 中处理它 下面是生成一些我想从 Arduino 接收的数据的示例代码 char i 0 char a 0 char b 0 void setu
  • 从 YUV 创建 CVPixelBuffer,并支持 IOSurface

    因此 我从网络回调 voip 应用程序 中获取 3 个独立数组中的原始 YUV 数据 据我了解 您无法使用以下命令创建 IOSurface 支持的像素缓冲区CVPixelBufferCreateWithPlanarBytes根据here 重
  • 隐藏元素不会复制到剪贴板

    我正在尝试添加按钮来复制简单的文本字符串 但没有成功 function kopiraj var copyText document getElementById toCopy copyText select document execCom
  • 在 Xcode 6 beta 5 中使用 += 时,'[(UIView)]' 与 'UInt8' 不同。使用追加方法?

    我正在使用 将 UIView 指向数组 但这似乎不再起作用 线路 dropsFound hitView 给出错误 UIView 与 UInt8 不同 这是该方法的一部分 请注意 从 Xcode 6 beta 5 开始 hitTest 现在返
  • iOS 多任务处理中进入后台时线程的行为

    在运行一些测试时 我注意到当应用程序 没有后台权限 即 voip gps 等 进入后台状态时 当时运行的任何后台线程 或并发 NSOperations 似乎都会暂停 未终止 当应用程序进入前台时 它们会继续 我在任何地方都看不到这个线程行为
  • 如何在 Linux shell 中使用正则表达式从文件中提取 IP 地址?

    如何在Linux shell中通过正则表达式提取文本部分 比方说 我有一个文件 其中每一行都是一个 IP 地址 但位置不同 使用常见的 UNIX 命令行工具提取这些 IP 地址的最简单方法是什么 你可以使用grep把他们拉出来 grep o
  • 在不创建项目的情况下使用 eclipse CDT

    我目前正在学习 c 我的第一语言是 python 我习惯在 pydev 中的 eclipse 中编码 我通过编写大量代码片段来学习语言 并广泛使用调试器来了解实际发生的情况 现在 我下载了 CDT for eclipse 因为我已经习惯了这
  • Flutter - 如何在streambuilder中使用await?

    我想在streambuilder 中使用await 但是 如果您在内部使用 async 则会出现错误 在下面的代码中 这就是我想要解决的部分 如果我能告诉你如何做的话 非常感谢 class MemoStreamState extends S
  • GKGraphNode costToNode 方法的子类永远不会被调用

    我正在尝试对 GKGraphNode2D 进行子类化 以包含针对不同地形的不同惩罚 在 costToNode 方法中 当我使用新子类的数组创建新的 GKGraph 并在 GKGraph 上调用 findPathFromNode 时 它 完全
  • erlang 中的 is_proplist 吗?

    如何获取列表的类型 如果列表是 proplist 我想执行代码 让我们说L a 1 b 2 c 3 列表是L吗 我将它转换为proplist 就像 L a 1 b 2 c 3 如何判断列表是否是 proplist erlang is lis
  • 通过 Coldfusion 中的 cfset 进行长/多行内容

    有没有一种方法可以使用 cfset 设置变量 其作用更像 cdata 标签 或者是否有另一种方法可以让页面设置一些基本变量并为主要内容设置几个较长的变量 ie
  • 在量角器测试中,有没有一种方法可以在测试运行之间等待

    在量角器中 有没有一种方法可以在每次测试运行之间添加显式等待 这与Java中的Thread sleep具有相同的效果 您可以在调试模式下启动量角器 run protractor debug debugging yourConfigFile
  • Rails 没有使用我的全局 Ruby 版本

    我想将 Rails 与 Ruby 2 1 0 一起使用 但它使用的是 Ruby 1 9 3 系统版本 我在用着rbenv管理我的 Ruby 版本 我的步骤大致如下 rbenv install 2 1 0 rbenv global 2 1 0
  • 使用谷歌电子表格脚本复制并粘贴

    我想修改下面显示的脚本 这样如果重新运行 它不会覆盖预先存在的数据 而是写入其下的行 我使用谷歌电子表格 moveValuesOnly fonction var ss SpreadsheetApp getActiveSpreadsheet
  • 在 Github 上发布项目版本(二进制/源代码包)?

    Does Github提供为项目创建发布页面的选项吗 我注意到它可以让您为源创建不同的标签 但找不到可以添加发行说明 构建包等的 UI web 更新日期 2013 年 7 月 2 日 你现在可以定义一个版本 Releases 将软件交付给最
  • jquery.on 滚动不起作用

    我正在尝试构建一个 DOM 事件记录器 以便可以回放用户如何与页面交互 我想使用 jquery on 功能 这样我就可以记录页面上的所有事件 在这个特定的实例中 我试图记录滚动事件 但最终我想记录各种事件 这是我的 JS Fiddle 的链
  • 仅 ONE VIEW 横向模式

    我完成了我的 iOS 应用程序 但我只需要将一个视图设置为横向模式 其余视图只能在纵向模式下看到 我使用的是 Xcode 5 1 并且通过从右侧面板放入故事板视图控制器来创建所有视图 因此 如果您要告诉我在某处编写一些代码 请准确地告诉我需
  • 如何根据 Javadoc 警告使 gradle 构建失败

    我正在使用 Java 7 尽管使用 1 6 进行编译 来编译类和 javadocs 我已经消除了出现的所有 javadoc 警告 但想法是如果存在任何 javadoc 警告 则构建失败 使用 Java 8 这是默认行为 但是 它在警告方面也