2016-06-16 3 views
2

私は何か間違っているのか、これがmaven checkstyleプラグインのバグかを判断しようとしています。私はmvn checkstyle:checkをすれば、私はこれを取得:私はmvn checkstyle:checkstyle通知を行う場合Mavenの "checkstyle:checkstyle"は常にデフォルトの "sun_checks.xml"にインラインチェックスタイル設定

[email protected] ~/dev/snapjms/snapjms $ mvn checkstyle:check 
[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building snapjms 1.0.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-checkstyle-plugin:2.17:check (default-cli) @ snapjms --- 
[INFO] There is 1 error reported by Checkstyle 6.11.2 with /Users/jonathanfisher/dev/snapjms/snapjms/target/checkstyle-rules.xml ruleset. 
[ERROR] src/main/java/org/xxx/xxx/snapjms/jms/factories/UnsupportedPayloadException.java:[8] (sizes) LineLength: Line is longer than 135 characters (found 144). 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD FAILURE 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.411 s 
[INFO] Finished at: 2016-06-16T15:33:58-05:00 
[INFO] Final Memory: 17M/371M 

それはsun_checks.xmlに反転する方法:

[email protected] ~/dev/snapjms/snapjms $ mvn checkstyle:checkstyle 
[INFO] Scanning for projects... 
[INFO]                   
[INFO] ------------------------------------------------------------------------ 
[INFO] Building snapjms 1.0.0-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- maven-checkstyle-plugin:2.17:checkstyle (default-cli) @ snapjms --- 
[INFO] There are 451 errors reported by Checkstyle 6.11.2 with sun_checks.xml ruleset. 
[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 1.904 s 
[INFO] Finished at: 2016-06-16T15:35:46-05:00 
[INFO] Final Memory: 24M/361M 

ここに私のインライン設定があります:

<build> 
    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-checkstyle-plugin</artifactId> 
      <version>2.17</version> 
      <inherited>true</inherited> 
      <configuration> 
       <logViolationsToConsole>true</logViolationsToConsole> 
       <checkstyleRules> 
        <module name="Checker"> 
        <module name="SuppressionCommentFilter" /> 
        <module name="LineLength"> 
         <property 
          name="max" 
          value="135" /> 
         <property 
          name="ignorePattern" 
          value="@version|@see" /> 
        </module> 
       </checkstyleRules> 
      </configuration> 
     </plugin> 
     </plugins> 
    </pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 
<reporting> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-checkstyle-plugin</artifactId> 
    </plugin> 
</reporting> 

mvn:siteについての報告もsun_checks.xml私は間違って何をしていますか?

答えて

4

checkstyleの目標は、設定済みのconfigLocationからルールセットファイルを読み取ります。既定では、これはプラグインに含まれているにあります。

使用するXML構成の場所を指定します。 [...]のMavenのCheckstyleプラグインに含まれて2つの事前に定義されたルールセットがあります

  • sun_checks.xml:日チェックが。
  • google_checks.xml:Google Checks。

デフォルト:​​目標に反してsun_checks.xml

、それはインラインチェッカーの設定の使用を可能にcheckstyleRulesパラメータを持っていない、と、のような、指定する必要が上書きされますルールセットの場所。

これについてthe maven-checkstyle-plugin JIRAで強化リクエストが見つからない場合があります。インライン設定はMCHECKSTYLE-211に導入されており、明らかにcheckの目標をカバーしていました。

これはあなたの出力を説明します:mvn checkstyle:check

  • 、使用されるルールは<checkstyleRules>パラメータで定義されたものです。
  • mvn checkstyle:checkstyleの場合、ルールの場所が設定されないため、デフォルトはsun_checks.xmlになります。

したがって、あなたは、外部ファイルを持っている必要があります(たとえば、mvn siteと報告目標として使用した場合に実行)check目標にあなたのルールを使用し、それを参照するように:

<configLocation>checkstyle.xml</configLocation> 
0

次のコードの断片は、このコマンドを実行したときに実行されます。このモジョはCheckstyleViolationCheckMojo

@Parameter(property = "checkstyle.config.location", defaultValue = "sun_checks.xml") 
private String configLocation; 

からです

mvn checkstyle:check 

@Parameterアノテーションには、 "checkstyle.config.location"という引数名プロパティがあり、デフォルト値は "sun_checks.xml"です。この値はコマンドラインで渡すことで上書きできます-Dフラグ。あなたが別のチェックスタイルの設定を使用したい場合は、コマンドを実行するときに、次のようにこれだけ、それを追加します。

それは「リソースとして解決し、あなたはドンされるように、GoogleのチェックはすでにのCheckstyleプラグインに含まれていることを
mvn checkstyle:check -Dcheckstyle.config.location=[path to my checkstyle file] 
mvn checkstyle:check -Dcheckstyle.config.location=google_checks.xml -Dcheckstyle.violationSeverity=warning 
mvn checkstyle:check -Dcheckstyle.config.location=~/custom_checks.xml 

お知らせあなたがそれのカスタムバージョンを持っていない限り、パスを追加する必要はありません。

ソースコードをチェックすることで、渡すことができるすべてのプロパティを確認できます。

https://github.com/apache/maven-plugins/blob/trunk/maven-checkstyle-plugin/src/main/java/org/apache/maven/plugins/checkstyle/CheckstyleViolationCheckMojo.java

関連する問題