SonarQube 不使用新的 pmd 插件检测规则

SonarQube doesn't detect rules with new pmd plugin

我正在使用 SonarQube v 5.0.1 我已将我的 rules.xml 文件放在 extensions/rules/pmd 目录中。 现在,如果我使用 sonar-pmd-plugin 2.3 版,一切正常 - 我启动声纳,转到规则搜索,可以在 rules.xml 文件中找到所有规则。 但是在切换到 sonar-pmd-plugin 2.4 版后,我找不到我的规则。 我已经在旧的 (v 2.3) 插件中切换了 PMD 版本,但它没有任何效果,所以我猜它不是 PMD,而是插件。规则的默认目录是否已随最新的 pmd 插件或其他内容发生变化?在文档中找不到任何内容。

我在使用 Sonarqube 4.5.5 时遇到了同样的问题。将 sonar-pmd-plugin 从 2.4 降级到 2.3 解决了这个问题。现在我可以看到我在 extensions/rules/pmd.

中输入的自定义规则

我遇到了 Sonarqube 5.6.3 和 sonar-pmd-plugin 2.6 的问题。因此,要查看我的自定义规则,我需要执行以下操作:

  • 将规则集定义jar文件和规则列表xml文件放在extensions/rules/pmd路径下,为此我按照这个post.
  • 将插件降级到 2.3 版本。
  • 在插件的pmd.properties文件中添加自定义规则,这个文件在org/sonar/l10n /。 例如:

    #Add pmdAtgRules
    rule.pmd.ActionClassName.name=ActionClassName
    rule.pmd.BreaksLogging.name=BreaksLogging
    
  • 重新启动 Sonarqube。