Add a new rulesets for Maven's POM rules

This commit is contained in:
Romain PELISSE
2015-04-16 13:34:02 +02:00
parent 85b6b3c0ff
commit 054d3ce0c9
2 changed files with 50 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
<?xml version="1.0"?>
<ruleset name="Basic POM"
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 http://pmd.sourceforge.net/ruleset_2_0_0.xsd">
<description>
The Basic POM Ruleset contains a collection of good practices regarding Maven's POM files.
</description>
<rule name="ProjectVersionAsDependencyVersion"
language="xml"
since="5.4"
message="Do not use project's version to express a dependency's version."
class="net.sourceforge.pmd.lang.rule.XPathRule"
externalInfoUrl="${pmd.website.baseurl}/rules/pom/basic.html#ProjectVersionAsDependencyVersion">
<description>
<![CDATA[
Using that expression in dependency declarations seems like a shortcut, but it can go wrong. By far the most common problem is the use of
${project.version} in a BOM or parent POM.
]]>
</description>
<priority>3</priority>
<properties>
<property name="xpath">
<value>
<![CDATA[
//dependency/version/text[contains(@Image,'{project.version}')]
]]>
</value>
</property>
</properties>
<example>
<![CDATA[
<project...>
...
<dependency>
...
<version>${project.dependency}</version>
</dependency>
</project>
]]>
</example>
</rule>
</ruleset>

View File

@@ -0,0 +1,5 @@
#
# BSD-style license; for more info see http://pmd.sourceforge.net/license.html
#
rulesets.filenames=rulesets/pom/basic.xml