2012-06-19 135 views
5

我一直在努力尝试在Eclipse Indigo IDE中的Maven中使用Checkstyle工作一段时间。最后,我想我会请求一些专家建议。Maven Checkstyle:检查不工作

我正在使用Eclipse Indigo并尝试将Checkstyle配置为在Maven中运行。

下面是我的pom.xml的一个片段。只有checkstlye:checkstlye正在工作并创建报告。

======

<profile> 
     <id>checkstyle-profile</id> 
     <build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-checkstyle-plugin</artifactId> 
        <version>2.9.1</version> 
        <configuration> 
         <includeTestSourceDirectory>true</includeTestSourceDirectory> 
         <configLocation>${basedir}/src/main/resources/maven_checks.xml</configLocation> 
        </configuration> 
        <executions> 
         <execution> 
          <id>checkstyle-check</id> 
          <goals> 
           <goal>check</goal> 
          </goals> 
          <phase>compile</phase> <!-- Default is "verify" --> 
          <configuration> 
           <violationSeverity>error</violationSeverity> 
           <maxAllowedViolations>7000</maxAllowedViolations> 
           <failOnViolation>true</failOnViolation> 
           <failsOnError>true</failsOnError> 
          </configuration> 
         </execution> 
        </executions> 
       </plugin> 
      </plugins> 
     </build> 
    </profile> 

</profiles> 

<reporting> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-checkstyle-plugin</artifactId> 
      <version>2.9.1</version> 
      <configuration> 
       <configLocation>${basedir}/src/main/resources/maven_checks.xml</configLocation> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jxr-plugin</artifactId> 
      <version>2.3</version> 
     </plugin> 
    </plugins> 
</reporting>  

一些事情,没有工作是:

  1. configLocation自定义checkstlye被忽略,且始终默认到Sun checkstlye。
  2. 我无法运行checkstlye:检查。我得到以下错误。我应该运行什么目标以便checkstyle:check运行。 无法执行目标org.apache.maven.plugins:项目zzz-web上的maven-checkstyle-plugin:2.9.1:check(default-cli):您有5950 Checkstyle冲突
  3. 配置设置是否适合失败如果违规数量超过7000,构建?
  4. Checkstyle报表无法交叉引用报表中的Java代码。因此,例如,如果我尝试从包向下钻取Java类,然后单击违规的行号,则不会将我带到Java文件。也许我没有正确配置jxr插件。

希望快速回复。

在此先感谢。 Varma

回答

7

您有绑定check目标maven checkstyle plugincompile阶段。在这种情况下,您需要运行mvn compile以使用您的配置。运行mvn checkstyle:check将使用默认配置。这看起来像上面第1项和第2项最可能的情况。

即使您运行mvn compile上述配置,因为两者都被设置为true仍然会失败是考虑到两个配置项failOnViolationfailOnError的构建。只要违规数量少于7000,删除这些条目并运行mvn compile应该通过构建。

+0

谢谢Raghuram!感谢你的帮助。 – AVarma

+2

@AVarma。当然,您可能想要upvote和/或[接受答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work),以便将来帮助他人。 – Raghuram

+0

报告问题/改进 - https://issues.apache.org/jira/browse/MCHECKSTYLE-314 –

0

1.config自定义checkstlye的位置被忽略,并且始终默认为Sun checkstlye。

对于此,请使用以下标签:>

<properties<checkstyle.config.location>properties/checkstyle.xml</checkstyle.config.location> </properties> 
在你的项目上,你的使用checkstyle.this线将在顶部和下方的pom.xml的标签的pom.xml

<version>0.0.1-SNAPSHOT</version>