【问题标题】:Eclipse-PMD Configure ruleset globallyEclipse-PMD 全局配置规则集
【发布时间】:2015-08-25 18:24:57
【问题描述】:

所以我在共享版本控制环境中使用插件 Eclipse-PMD (http://sourceforge.net/projects/pmd/files/pmd-eclipse/update-site/)。

我们在整个项目中有多个较小的项目。

开箱即用,这个插件似乎需要为每个项目单独配置。 它的工作方式是在项目中搜索 .pmd 文件并从中读取信息。

但是对于 10-20 个子项目,这样做真的很不方便。

在 Preferences -> PMD 下有一个通用设置。但这似乎不适用于全局,即使选中了该全局复选框。

我基本上想要什么:我想将插件配置为在一个地方尊重单个规则集文件。

配置子项目特定的另一个问题:我无法在 .pmd 文件中为 ruleSetFile 配置相对路径。 绝对路径的问题是文件被检入版本控制......所以每次提交其他人都必须重新调整。 我找到了这个提交:https://github.com/pmd/pmd/pull/36,但我似乎无法让它按照大致描述的方式工作。

那么,有没有人实现了我的目标?

编辑:实际上我什至不能在 .pmd 文件中将任何其他不是“.ruleset”的文件指定为<ruleSetFile> 不指定绝对路径??

ruleSetFile 的默认值为“.ruleset”。所以我想,与此类似,我可以在 exact same dir 中创建一个文件,将其命名为 fooRules.xml,并通过 <ruleSetFile>fooRules.xml</ruleSetFile> 指定它,但只有放置整个路径才能找到它到 fooRules.xml 里面?!

【问题讨论】:

    标签: java eclipse eclipse-plugin pmd


    【解决方案1】:

    试试eclipse-pmd(可在Eclipse 市场或通过更新站点http://www.acanda.ch/eclipse-pmd/release/latest 获得)。使用 eclipse-pmd,您可以将项目配置为对多个项目使用单个规则集文件。它还存储其相对于工作空间的路径。不过,您仍然需要单独配置每个项目(目前,这将在未来的版本中更改)。

    要按照您描述的方式设置 eclipse-pmd,您必须打开第一个项目的项目属性,选择“PMD”属性页并添加规则集。选择规则集类型“工作区”并选择您的规则集文件。 对于每个其他项目,您必须打开项目的 PMD 属性页面,您可以在其中找到之前选择的规则集文件,只需检查该文件即可激活。

    如果您以这种方式进行设置,每个项目中都会有一个 .eclipse-pmd 文件,其中包含这些设置。如果您将此检查到您的版本控制系统中,那么您团队中的其他任何人都不需要设置任何东西(除了安装 eclipse-pmd)。

    免责声明:我编写了 eclipse-pmd。主要是因为我在使用其他插件时遇到了与您完全相同的问题。

    【讨论】:

    • 我发布的不是和你提到的完全一样的插件吗?我会检查你发布的内容,但据我了解是一样的吗?当您说相对于工作区时...问题是我们的开发人员没有将项目复制到工作区中,您知道吗?根据我的理解,这是强制性的,否则“相对于工作区”根本无济于事,因为项目文件不在工作区中?有没有其他方法可以从抽象级别访问非工作区文件?如果真的没有其他办法,那么我想我必须强迫其他人将所有文件复制到工作区。
    • 为什么你的名字叫eclipse-pmd?你是创造者吗?
    • 不是同一个插件。您正在使用的正式名称为“PMD for Eclipse”,由创建 PMD 本身的同一个人维护。我写的插件是eclipse-pmd。
    • 如果项目文件链接到工作区但存储在文件系统的其他位置,则 eclipse-pmd 中的工作区相关配置也有效。 IE。只要你能在 Eclipse 的 Project Explorer 中看到规则集文件就可以了。
    • 短期内有计划做全局启用功能吗?
    【解决方案2】:

    我一直在努力让它与 PMD for Eclipse 一起工作。虽然 Eclipse-PMD 内置了这个功能,但我遇到了一些其他问题(例如,我认为它不是用来创建报告的)。

    诀窍是将规则作为链接添加到项目中。

    创建规则文件,例如pmd.xml,在项目的父文件夹中。将文件添加到要检查的项目中,但将其添加为参考。因此,将文件从资源管理器拖到包中并选择:

    在项目属性的 PMD 部分中,选中 Enable PMDApply and Close 设置。

    现在关闭 Eclipse。编辑项目文件夹中名称为.pmd的文件,将内容替换为以下内容:

    <?xml version="1.0" encoding="UTF-8"?>
    <pmd>
    <useProjectRuleSet>true</useProjectRuleSet>
    <ruleSetFile>pmd.xml</ruleSetFile>
    <includeDerivedFiles>false</includeDerivedFiles>
    <violationsAsErrors>true</violationsAsErrors>
    <fullBuildEnabled>true</fullBuildEnabled>
    </pmd>
    

    重新启动 Eclipse 并右键单击该项目。选择 PMD/校验码。现在,只应报告 pmd.xml 中定义的违规行为。

    仅使用 GUI 配置 PMD 似乎对我不起作用。

    【讨论】:

    • 添加了在项目设置中启用PMD的信息
    猜你喜欢
    • 2018-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 2012-11-03
    • 2015-02-18
    • 1970-01-01
    相关资源
    最近更新 更多