0

マルチモジュールの Maven プロジェクトがあり、グルーヴィーなソースの pmd、checktyle を無効にする方法が見つかりません。

トップレベルからコマンドを実行します:

mvn clean install pmd:pmd checktyle:checkstyle

私のプロジェクトの構造は次のとおりです。

pom.xml
-module1
 src
   main
      groovy          
   test
      groovy

-module2
 src
   main
      groovy
      java
  test
      groovy

pmd/checkstyle にグルーヴィーなファイルを検査させたくありません。pluginManagement内の親 pom セクションは次のとおりです。

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-pmd-plugin</artifactId>
    <version>2.7.1</version>
    <configuration>
        <format>xml</format>
        <targetJdk>1.6</targetJdk>
        <linkXRef>false</linkXRef>
        <!--
          <excludeRoots>
            <excludeRoot>${project.basedir}/src/main/groovy</excludeRoot>
            <excludeRoot>${project.basedir}/src/test/groovy</excludeRoot>
          </excludeRoots>
        -->
        <!--
        <excludeRoots>
          <excludeRoot>
           ${project.basedir}/target/generated-sources/groovy-stubs
          </excludeRoot>
        </excludeRoots>
        -->
        <excludes>
           <exclude>**/generated-sources/groovy-stubs/**/*.java</exclude>
        </excludes>
      <rulesets>
       <ruleset>
        ${rule.repository.url}/pmd/rules/pmd-rules/1.0.4.2/pmd-rules-1.0.4.2.xml
       </ruleset>
      </rulesets>
     </configuration>
 </plugin>

module1 の pom.xml には、pmd/checktyle プラグインへの参照がありません。とにかくpmd、groovyソースにチェックスタイルが適用されます。

module2 には pom.xml でこれらのプラグインへの参照がありますが、groovy は無視されません。

私は何を間違っていますか?

4

1 に答える 1

0

デバッグ オプション (-X) を指定して Maven を実行すると、PMD プラグインによって処理されたすべてのディレクトリを確認できます。すべてのディレクトリは、変数 compileSourceRoots にリストされています。

これらの除外を使用して、groovy-stub の PMD を無効にすることができます。

<excludeRoots>
    <excludeRoot>${project.build.directory}/generated-sources/groovy-stubs/main</excludeRoot>
    <excludeRoot>${project.build.directory}/generated-sources/groovy-stubs/test</excludeRoot>
</excludeRoots>
于 2013-09-19T07:33:41.010 に答える