如何在Gradle> 2.0中查找PMD规则集名称

Xel*_*ian 7 java pmd gradle

在Gradle的Java项目中,我们可以通过pmd插件使用PMD .配置我们想要使用的规则可以通过两种方式实现:

  • ruleSetFiles - 要使用的自定义规则集文件.有关如何编写规则集文件的信息,请参阅官方文档.示例:ruleSetFiles = files("config/pmd/myRuleSet.xml")
  • ruleSets要使用的内置规则集.请参阅内置规则集的官方列表.

使用ruleSetFiles,您可以找到规则的名称并添加或排除规则,但在文档中没有关于ruleStes的信息吗?从哪里可以找到确切的名字?根据我从其他项目中发现的名称,这些名称与PMD文档中的名称类似,但是小写.例如:

Braces - > java-braces
Clone - > java-clone
Implementation - >java-implementation
Code Size - > java-codesize
Run Code Online (Sandbox Code Playgroud)

但是像安全代码指南这样的转换不会转换为- > java-securitycodeguidelines,而只是转换为java-sunsecure.我发现了与PMD 5.1.1一起使用的名称.是:

pmd {
      ruleSets = [
        'java-android',
        'java-basic',
        'java-braces',
        'java-clone',
        'java-codesize',
        'java-comments',
        'java-controversial',
        'java-coupling',
        'java-design',
        'java-empty',
        'java-finalizers',
        'java-imports',
        'java-j2ee',
        'java-javabeans',
        'java-junit',
        'java-logging-jakarta-commons',
        'java-logging-java',
        'java-migrating',
        'java-naming',
        'java-optimizations',
        'java-strictexception',
        'java-strings',
        'java-sunsecure',
        'java-typeresolution',
        'java-unnecessary',
        'java-unusedcode'           
        ]
    toolVersion = '5.1.1'
    ignoreFailures = true
}
Run Code Online (Sandbox Code Playgroud)

如何查找文档中显示的PMD名称与Gradle名称之间的映射?

dby*_*ron 3

RuleSetReferenceId 的文档很有帮助,因为我相信源树中的这个目录。基本上将 java- 放在任何这些文件的前面以打开那里的规则。