2013-04-15 9 views
12

POMで1つのPMDルールを除外したいのに機能しません。 私は(のpom.xmlと同じディレクトリに)PMD-exclude.xmlを作成しようとした:http://www.ing.iac.es/~docs/external/java/pmd/howtomakearuleset.htmlからmavenプラグインのPMDから1つのルールチェックを削除してください

<?xml version="1.0"?> 
<ruleset name="remove_rules"> 
    <description>Remove rules</description> 
    <rule ref="rulesets/unnecessary.xml"> 
     <exclude name="UselessParentheses"/> 
    </rule> 
</ruleset> 

とのpom.xmlでそれを参照:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-pmd-plugin</artifactId> 
    <version>3.0.1</version> 
    <configuration> 
     <sourceEncoding>utf-8</sourceEncoding> 
      <rulesets> 
        <ruleset>${pom.basedir}/pmd-exclude.xml</ruleset> 
      </rulesets> 
    </configuration> 
</plugin> 

しかし、それは続けてこれらのルールを報告します。

また、新しいバージョンには新しいルールが含まれている可能性があるため、チェックするルールを指定したくないため、新しいバージョンごとに新しいルールが実行されるかどうかを確認したくありません。

+0

は、任意の解決策を見つけることでしたか? excludeFromFailureFileで試していますが、それでもうまくいきません。 – Jaga

+1

私はこのための本当の解決策を見つけることができませんでした。後でSonarに移行し、必要なものとグラフィックスやその他のクールなものを加えたルールを設定できます。しかし、これは正確にこの質問に対する答えではありません。 –

+0

あなたの素早い応答ありがとう – Jaga

答えて

5

あなたが確認したいルールセットを追加し、必要のない特定のルールだけを破棄する必要があると思います。

PMD-exclude.xmlは次のようになります。marcelopazzoのソリューション@

<?xml version="1.0" encoding="UTF-8"?> 
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    name="Android Application Rules" 
    xmlns="http://pmd.sf.net/ruleset/1.0.0" 
    xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd" 
    xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd" > 

    <description>Remove rules</description> 

    <rule ref="rulesets/clone.xml" /> 
    <rule ref="rulesets/finalizers.xml" /> 
    <rule ref="rulesets/imports.xml" /> 
    <rule ref="rulesets/logging-java.xml" /> 
    <rule ref="rulesets/unnecessary.xml" > 
     <exclude name="UselessParentheses" /> 
    </rule> 

</ruleset> 
+0

PMDチームによって新しいルールセットが追加されましたか?あなたの答えは、私が必要としていたものと密接に近いようです。 –

0

は私のために働きました。マルチモジュールのmavenプロジェクトで作業している場合は、各モジュールにこのファイルのコピーを作成する予定がない限り、pmd-exclude.xmlへの参照を更新する必要があります。

<plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-pmd-plugin</artifactId> 
     <version>3.6</version> 
     <configuration> 
      <rulesets> 
       <ruleset>${project.parent.basedir}/pmd-exclude.xml</ruleset> 
      </rulesets> 
     </configuration> 
    </plugin> 
関連する問題