我有一个Android库和一个Android App项目,有什么用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以获取更多相关信息。
更新:在给定的代码中你看到制作规则集,如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,因为你正在使用规则集模式版本2(顺便说一下.http://pmd.sourceforge.net/ruleset_5_3_1.xsd根本不存在)。但是,这没关系,因为当PMD加载规则集时,规则集不会针对模式进行验证。
更相关似乎是文件script-pmd.gradle
。你有这个档案吗?我想,那里配置了gradle pmd plugin。这个插件有一个控制PMD版本的属性:toolVersion
例如,您的配置可以调整为如下所示:
pmd {
ignoreFailures = false
sourceSets = [sourceSets.main]
reportsDir = file("$project.buildDir/reports/pmd")
ruleSets = [],
ruleSetFiles = files("pmd-rules.xml")
toolVersion = "6.12.0"
}