Eclipse-PMD 全局配置规则集

Eclipse-PMD Configure ruleset globally

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

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

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

但是对于10-20个子项目来说真的很不方便。

首选项 -> PMD 下有一个常规设置。但这似乎并不适用于全球,即使该全球复选框被选中。

我基本上想要的是:我想配置插件以在一个地方遵守单个规则集文件。

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

那么,有没有人实现我正在寻找的东西?

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

ruleSetFile 的默认值为“.ruleset”。所以我想,与此类似,我可以在 完全相同的目录 中创建一个文件,将其命名为 fooRules.xml,并通过 <ruleSetFile>fooRules.xml</ruleSetFile> 指定它,但它只能如果把 fooRules.xml 的整个路径放在那里找到它?!

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

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

如果您这样设置,每个项目中都会有一个 .eclipse-pmd 文件包含这些设置。如果您将其签入您的版本控制系统,那么您团队中的任何其他人都无需设置任何东西(除了安装 eclipse-pmd)。

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

为了让 PMD for Eclipse 能够正常工作,我已经苦苦挣扎了很长时间。虽然 Eclipse-PMD 内置了此功能,但我遇到了一些其他问题(例如,我认为它不适合创建报告)。

诀窍是将规则作为 link.

添加到项目中

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

在项目属性的 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 并右键单击该项目。 Select PMD/Check 代码。现在,只应报告 pmd.xml 中定义的违规行为。

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