【问题标题】:How can I update PMD to newer version?如何将 PMD 更新到较新版本?
【发布时间】:2019-08-01 19:29:25
【问题描述】:

我有一个 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 版本?

【问题讨论】:

    标签: android gradle build.gradle android-library pmd


    【解决方案1】:

    至于给定的问题,您必须询问图书馆的作者。您也可以查看给定的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
    

    【讨论】:

    • 我搜索了整个 Android 库项目,既找不到 _config.yml 文件,也找不到 docs 文件夹,我可以在其中创建一个全新的文件。
    • 刚刚找到搜索的方式。我将在 docs 文件夹内的答案@NoamEpstein 中附上图片,您可以找到您拥有的版本。
    【解决方案2】:

    您可以在主页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"
    }
    

    【讨论】:

      猜你喜欢
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-06
      • 2013-07-12
      • 2014-05-01
      相关资源
      最近更新 更多