为什么 PMD 对 Eclipse 和 Gradle 给出不同的结果?
Why is PMD give different results for Eclipse and Gradle?
我正在使用 eclipse-pmd 插件,我还通过以下 Gradle 配置使用 PMD:
plugins {
id 'pmd'
}
pmd {
consoleOutput = true
ruleSets = []
ruleSetFiles = files("pmd-ruleset.xml")
toolVersion = "6.41.0"
}
两种方法都配置为使用相同的规则集,我的 PATH
变量指向 PMD 6.41.0(我 认为 是 Eclipse 插件使用的) , 但两者都给出不同的结果。
例如,运行 ./gradlew pmdMain
抱怨规则 AvoidUncheckedExceptionsInSignatures
,但 eclipse-pmd 根本没有标记它。
为什么会这样?
事实证明,eclipse-pmd 插件(我在 C:\Users\{username}\.p2\pool\plugins
中找到)附带了自己的 PMD 版本,在本例中为 6.28 .0.
这并不能完全解释差异,因为 AvoidUncheckedExceptionsInSignatures
规则自 PMD 6.13.0 以来一直存在,但我很乐意将输出差异归咎于版本差异。
我正在使用 eclipse-pmd 插件,我还通过以下 Gradle 配置使用 PMD:
plugins {
id 'pmd'
}
pmd {
consoleOutput = true
ruleSets = []
ruleSetFiles = files("pmd-ruleset.xml")
toolVersion = "6.41.0"
}
两种方法都配置为使用相同的规则集,我的 PATH
变量指向 PMD 6.41.0(我 认为 是 Eclipse 插件使用的) , 但两者都给出不同的结果。
例如,运行 ./gradlew pmdMain
抱怨规则 AvoidUncheckedExceptionsInSignatures
,但 eclipse-pmd 根本没有标记它。
为什么会这样?
事实证明,eclipse-pmd 插件(我在 C:\Users\{username}\.p2\pool\plugins
中找到)附带了自己的 PMD 版本,在本例中为 6.28 .0.
这并不能完全解释差异,因为 AvoidUncheckedExceptionsInSignatures
规则自 PMD 6.13.0 以来一直存在,但我很乐意将输出差异归咎于版本差异。