2

メイン用とテスト用の 2 つの異なるルール セットを使用して checkstyle を実行できるように、Maven プロジェクトをセットアップしようとしています。私がやりたいことは、次のようなものです。

<reporting>
  <plugins>
    <!-- One configuration for main -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-checkstyle-plugin</artifactId>
      <configuration>
        <configLocation>checkstyle</configLocation>
      </configuration>
    </plugin>
    <!-- But a different set of rules for test -->
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-checkstyle-plugin</artifactId>
      <configuration>
        <sourceDirectory>${project.build.testSourceDirectory}</sourceDirectory>
        <configLocation>checkstyle-test.xml</configLocation>
      </configuration>
    </plugin>
  </plugins>
</reporting>

いずれかのバージョンを正常に実行できましたが、両方を同時に実行することはできませんでした。それらをさまざまな実行フェーズにバインドしようとすることも含まれますが、経験則では、最後の定義のみが使用されるようです。

だから私は次のいずれかをしたい:

-理想的には、独立して実行できる2つの別々のcheckstyle構成ファイルを用意する

また

-単一のcheckstyle構成を持ち、構成プロパティincludeTestSourceDirectoryを使用してメインとテストを同時にチェックしますが、メイン/テストまたは他のいずれかに選択的に適用されるいくつかのルールがあります。

4

3 に答える 3

3

次はどうでしょうか。

   <reporting>
     <plugins>
     <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.6</version>
        <reportSets>
          <reportSet>
            <id>main_checks</id>
            <reports>
              <report>checkstyle</report>
            </reports>
            <configuration>
              <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
              <includeTestSourceDirectory>false</includeTestSourceDirectory>
              <configLocation>config/maven_checks.xml</configLocation>
              <outputDirectory>${project.reporting.outputDirectory}/main-checks/</outputDirectory>
            </configuration>
          </reportSet>
          <reportSet>
            <id>test_checks</id>
            <reports>
              <report>checkstyle</report>
            </reports>
            <configuration>
              <sourceDirectory></sourceDirectory>
              <testSourceDirectory>${project.build.testSourceDirectory}</testSourceDirectory>
              <includeTestSourceDirectory>true</includeTestSourceDirectory>
              <configLocation>config/sun_checks.xml</configLocation>
              <outputDirectory>${project.reporting.outputDirectory}/test-checks/</outputDirectory>
            </configuration>
          </reportSet>
        </reportSets>
      </plugin>
     </plugins>
   </reporting>
于 2011-05-03T16:47:20.917 に答える