如何将 PMD 更新到新版本?

How can I update PMD to newer version?

我有一个Android库和一个Android应用程序项目,有什么用the library PMD

我们使用的是旧版本,我被要求将这个 PMD 库更新到更新的版本 6.X.X

在项目中,我找到了一个 rules-pmd.xml 文件:

 <?xml version="1.0"?> <ruleset
     name="My rules"
     xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
     xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0
http://pmd.sourceforge.net/ruleset_5_3_1.xsd">

将此 xml 更改为

http://pmd.sourceforge.net/ruleset_6_12_0.xsd

没有帮助。然后在模块 build.gradle:

apply from: "$path/script-pmd.gradle"

找不到 PMD 的任何其他版本..

在哪里可以更改使用的PMD版本?

至于给定的问题,你必须问图书馆的作者。您也可以查看给定的 library web link 以获取更多相关信息。

Update :在给定的代码中,您将看到有关制定规则集的信息,如 here 所述,因此您必须检查其他地方。

例如, 我刚刚检查并在此处说明您会找到所需的信息:follow the link

The new version needs to be entered into _config.yml, e.g.:

pmd:
latestVersion: 6.0.0
latestVersionDate: 15th December 2017

您可以在首页https://pmd.github.io查看最新版本。目前PMD 6.12.0为最新版本

在您的规则集 pmd-rules.xml 中,您正在引用架构 XSD。但是这里你需要引用 https://pmd.sourceforge.io/ruleset_2_0_0.xsd since you are using the ruleset schema version 2 (btw. http://pmd.sourceforge.net/ruleset_5_3_1.xsd 根本不存在)。但是,这并不重要,因为当 PMD 加载规则集时,不会根据模式验证规则集。

更相关的似乎是文件 script-pmd.gradle。你有这个文件吗? 我想,那里有 gradle pmd plugin is configured. This plugin has a property which controls the version of PMD: toolVersion

例如,您的配置可以调整为如下所示:

pmd {
  ignoreFailures = false
  sourceSets = [sourceSets.main]
  reportsDir = file("$project.buildDir/reports/pmd")
  ruleSets = [],
  ruleSetFiles = files("pmd-rules.xml")
  toolVersion = "6.12.0"
}