【问题标题】:Configure same PMD ruleset for eclipse-pmd as gradle PMD uses - Which ruleset is used for net.sourceforge.pmd:pmd-java为 eclipse-pmd 配置与 gradle PMD 使用相同的 PMD 规则集 - net.sourceforge.pmd:pmd-java 使用哪个规则集
【发布时间】:2018-02-06 19:43:44
【问题描述】:

我的build.gradle 中有这样的 PMD 检查:

apply plugin: "pmd"

dependencies {
  pmd "net.sourceforge.pmd:pmd-java:5.5.+"
}
/*** PMD ***/

pmd {
    ignoreFailures = true
}

tasks.withType(Pmd) {
    excludes = ["**/gen/*"]
    reports {
        xml.enabled = true
        html.enabled = true
    }
}

这里使用了哪个规则集?

我想为 Eclipse PMD 插件配置相同的规则集(项目属性 -> PMD - 添加)。 理想情况下,eclipse 项目由 gradle 配置以具有正确的设置。

【问题讨论】:

    标签: java eclipse pmd


    【解决方案1】:

    Gradle 的默认配置是使用 java-basic (source)

    但是,这是一种非常保守的方法,几乎​​没有利用 PMD 提供的所有功能。

    作为 PMD 维护者,我个人的建议是:

    1. 查看https://pmd.github.io/pmd-5.8.1/pmd-java/rules/index.html 上的所有可用规则
    2. Create your own ruleset 包括您同意的那些规则,以及您可能希望更改默认值的所有额外属性。

    Gradle 和 PMD Eclipse 插件都可以从文件中的规则集中加载规则,从而可以轻松地让它们始终保持同步。

    【讨论】:

    • 谢谢。是的,我扩展了规则集并将其添加到我的 gradle pmd { ruleSetFiles = files("${rootProject.projectDir}/config/pmd/ruleset.xml")
    • @timguy 太棒了!另外值得注意的是,5.5.x 是 PMD 的一个非常旧的版本。最新版本是 5.8.1(6.0.0 即将推出)。您应该考虑更新,并且这样做,不要直接定义依赖关系,而是使用pmd { toolVersion = '5.8.1' },因为 PMD 实际上被拆分为几个不同的 jars
    猜你喜欢
    • 2015-08-25
    • 1970-01-01
    • 2017-09-21
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 2012-11-03
    • 2015-02-18
    • 1970-01-01
    相关资源
    最近更新 更多