我正在尝试使用Jenkins的PMD插件。除了一个问题外,一切正常。当Jenkins构建失败时,构建中的报告不会更新。这可能是个问题,因为如果您的代码中有关键错误,您必须手动进入工作空间并阅读由PMD生成的.xml文件以查看错误信息。
我找到了一个有同样问题的人,但是这篇帖子最后更新于2009年。在帖子的结尾,有人解释说这还不是一个功能。http://jenkins-ci.361315.n4.nabble.com/pmd-post-build-publishing-after-failing-build-td376948.html 我可以确认PMD结果已经生成,因为我可以在Jenkins的工作空间中看到它们。然而,报告不会显示在构建中。
Jenkins控制台日志(由于VM,这里是打印屏幕):
我找到了一个有同样问题的人,但是这篇帖子最后更新于2009年。在帖子的结尾,有人解释说这还不是一个功能。http://jenkins-ci.361315.n4.nabble.com/pmd-post-build-publishing-after-failing-build-td376948.html 我可以确认PMD结果已经生成,因为我可以在Jenkins的工作空间中看到它们。然而,报告不会显示在构建中。
Jenkins控制台日志(由于VM,这里是打印屏幕):
![enter image description here](https://istack.dev59.com/YHWUE.webp)
正如您在这里看到的,Jenkins构建由于PMD规则违反而失败。这是好的,但是当我们进入构建时,您无法看到PMD报告。
我已经在Jenkins中安装了PMD插件,之前一直能用,但是当我改变了ruleviolation后就不能用了。你可以在这里查看我使用的gradle代码:
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()
}