Jenkins 的 PMD 插件 - 如何显示构建失败的报告?

Jenkins' PMD Plugin - How to show report on build failure?

我正在尝试使用 Jenkins 的 PMD 插件。除了一件事,一切都很好。当 Jenkins 构建失败时,构建中的报告将不会更新。这可能是个问题,因为如果您的代码中出现严重错误,您必须手动转到工作区并阅读 .xml 文件(由 PMD 生成)以查看您的错误是什么。

我发现有人遇到了同样的问题,但是这个 post 最后一次更新是在 2009 年。在 post 的结尾,你可以看到有人解释说这不是一个功能然而。 http://jenkins-ci.361315.n4.nabble.com/pmd-post-build-publishing-after-failing-build-td376948.html

我可以确认他正在生成 pmd 结果,因为我可以在我的 Jenkins 工作区中看到它们。但是,报告不会显示在构建中。

Jenkins 控制台日志(由于 VM 而打印屏幕):

如您所见,Jenkins 构建因违反 PMD 规则而失败。这很好,但是当我们进行构建时,您看不到 PMD 报告。

我已经在 J​​enkins 中安装了 PMD 插件,在我更改违反规则之前它一直有效。您可以在此处查看我的 gradle 的 PMD 代码:

task pmd (type: Pmd) {

ignoreFailures = false
description 'Run pmd'
group 'verification'
rulePriority = 2

ruleSets = ["java-android",
            "java-basic",
            "java-braces",
            "java-strings",
            "java-design",
            "java-unusedcode"]
source = fileTree('src/main/java')

reports {
    xml.enabled = true
    html.enabled = false
   }
}

check.doLast {
    project.tasks.getByName("pmd").execute()
}

所以在搜索了很多之后没有找到任何东西。我开始研究解决方法。我正在使用 Text-Finder plugin 查找文本 "PMD violations found"。找到此文本后,构建将更改为失败,现在将显示报告。

但是请注意,当您在 运行 post 行 "PMD violations found" 之后构建操作时,这些操作将不会被执行。因此,改为将构建更改为不稳定。