我正在使用Gradle 4.5.1和标准的Gradle插件。我特别要求我的构建使用PMD 6.1.0,如下所示:
apply plugin: "pmd"
pmd {
toolVersion = "6.1.0"
}
pmdMain {
rulSets = ["java-basic"]
}
Run Code Online (Sandbox Code Playgroud)
一切都通过了,但是在控制台中,我收到了许多弃用警告,其内容如下:
使用“规则名称”
category/java/errorprone.xml/AvoidBranchingStatementAsLastInLoop代替不推荐使用的“规则名称”rulesets/java/basic.xml/AvoidBranchingStatementAsLastInLoop。PMD 7.0.0将删除对此不建议使用的规则名称的支持。
我最初的想法是pmdMain像这样更改块:
pmdMain {
rulSets = ["java-errorprone"]
}
Run Code Online (Sandbox Code Playgroud)
但是,我收到此错误:
找不到规则“ java-errorprone”的资源“ null”。确保资源是有效文件或URL,并且在CLASSPATH上。这是当前的类路径:
~\.gradle\wrapper\dists\gradle-4.5.1-bin\a5vbgfvpwtoqz8v2cdivxz28k\gradle-4.5.1\lib\gradle-launcher-4.5.1.jar
我做错了什么吗?Gradle的PMD插件与PMD 6.x不兼容吗?
在PMD 6.0.0中,旧的规则集已弃用。规则被重新组织成几类,并且更大的推动力是人们为他们的项目创建量身定制的规则集。
也就是说,最佳实践是您编写一个自定义规则集文件,从Java规则目录中选择要包含的规则
话虽如此,您仍然可以包括完整的类别,即使不建议这样做。在Gradle下,可以通过以下方式完成:
pmdMain {
rulSets = ["category/java/errorprone.xml"]
}
Run Code Online (Sandbox Code Playgroud)
请注意,即使过时了,旧规则集也将继续起作用,直到发布PMD 7.0.0。我们计划为现有规则集文件提供迁移工具,并提供更简单的规则集生成器以简化过渡。
| 归档时间: |
|
| 查看次数: |
975 次 |
| 最近记录: |