1

Maven 3.0.5 を実行していて、maven checkstyle プラグインを使用しようとしていますが、構成ファイルを正しく解析することができません。私のPOMのレポートセクションには、

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.10</version>
    <configuration>
        <propertyExpansion>suppressions.file=${basedir}/suppressions.xml</propertyExpansion>
        <configLocation>file:///${basedir}/../buildTools/checkstyle/checkstyle-5.0-checks.xml</configLocation>
    </configuration>
</plugin>

私のcheckstyle.xmlファイルでは、次のように定義された抑制フィルターがあります

<module name="SuppressionFilter">
<!--     <property name="file" value="${checkstyle.suppressions.file}"/>
-->
   <property name="file" value="${suppressions.file}"/>
</module>

checkstyle:checkstyle ゴールを実行すると、suppressions.file が定義されていないというエラーが表示されます。これをEclipseまたはantで実行できますが、これをmavenで使用しようとすると、プロパティを設定できません。また、checkstyle.suppressions.file 値を使用して、propertyExpansion タグまたはpressionsFile タグで設定しようとしました。

Maven からこれを行う方法はありますか。私が探している最終結果は、Eclipse、Ant、および Maven で同じルール ファイルを使用できるようにすることです。これは、私が参照する一般的なファイルです。同時に、抑制フィルターをプロジェクトで制御できるようにする個々のプロジェクトにsuppressions.xmlファイルを配置できるようにしたいと考えています。

4

2 に答える 2

1

わかりました、レポート セクションに構成を追加すると、ビルド プラグイン セクションによって取得されると記載されているサイトに従って、これを開始しました。これは動作しません。チェック用のjarファイルの依存関係を追加することで、これについてやりたいことがまだあります。私が見つけたのは、チェックファイル内で定義されているにもかかわらず、抑制ファイルを指定する必要があるということです。また、内部抑制ファイルを指す propertyExpansion を使用して変数を渡す必要があります (抑制ファイルをもう一度指定する必要がなく、これが必要でした)。私は今、ビルドプラグインスタンザを次のように持っています

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.10</version>
    <configuration>
      <propertyExpansion>suppressions.file=${basedir}/suppressions.xml</propertyExpansion>
      <configLocation>file:///${basedir}/../buildTools/checkstyle/checkstyle-5.0-checks.xml</configLocation>
      <suppressionsFile>${basedir}/suppressions.xml</suppressionsFile>
    </configuration>
</plugin>
于 2013-09-14T14:01:39.007 に答える
1

まず、を介して行うように絶対ファイル名を使用しないことをお勧めしますconfigLocation。より良い解決策は、適切な構成ファイルを含むアーティファクトを使用することです。たとえば、別のプロジェクトと呼びましょう: バージョン化できる checkstyle などです。

checkstyle
  |-- src
  |   `-- main
  |       `-- resources
  |               |-- checkstyle.xml
  |               `-- LICENSE.TXT
  `-- pom.xml


<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example.checkstyle</groupId>
  <artifactId>checkstyle</artifactId>
  <version>1.0</version>
  <name>checkstyle configuration</name>
</project>

作成後mvn install、次のような構成を使用できます。

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.example</groupId>
  <artifactId>whatever-project</artifactId>
  <version>1.0</version>
  <packaging>pom</packaging>
  <name>My Project </name>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.10</version>
        <dependencies>
          <dependency>
            <groupId>com.example.checkstyle</groupId>
            <artifactId>checkstyle</artifactId>
            <version>1.0</version>
          </dependency>
        </dependencies>
      </plugin>
    </plugins>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.10</version>
        <configuration>
          <configLocation>checkstyle.xml</configLocation>
          <headerLocation>LICENSE.txt</headerLocation>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
于 2013-09-09T07:39:33.180 に答える