2010-04-30 40 views
2

我是新来的Maven和chekstyle,所以需要问一些问题...我想在我的基于Maven的项目中使用的CheckStyle,所以在我pom.xml我有添加的依赖Checkstyle的工作不

<dependency> 
    <groupId>checkstyle</groupId> 
    <artifactId>checkstyle</artifactId> 
    <version>2.4</version> 
</dependency> 

而且我已经添加在插件标签中的条目:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
    <enableRulesSummary>true</enableRulesSummary> 
    <configLocation>checkstyle.xml</configLocation> 
    </configuration> 
</plugin> 

但是,当我运行Maven构建与命令mvn clean install,CheckStyle的什么都不做。由于我的系统中没有任何checkstyle.xml,它不应该抱怨我错误吗?

我还缺少什么配置?

+0

你还可以看看[Qulice-Maven-plugin](http://www.qulice.com/qulice-maven-plugin/index.html),它结合了Checkstyle,PMD,FindBugs和其他一些静态分析仪,并预先配置它们 – yegor256 2012-10-23 17:07:07

回答

7

我想在我的基于Maven的项目中使用的CheckStyle,所以在我的pom.xml我已经添加的依赖(...)

你并不需要添加这种依赖关系,你只需要声明插件(一个插件声明自己的依赖)。

(...)但是当我用命令mvn clean install运行我的maven构建时,checkstyle不会执行任何操作。

是因为你只宣布插件,你没有的check目标绑定到生命周期阶段,因此一个普通身材不触发的CheckStyle插件。如果您希望checkstyle:check作为构建的一部分被触发,则需要在执行中声明check目标(默认情况下它会将其自身绑定到verify阶段)。事情是这样的:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-checkstyle-plugin</artifactId> 
    <!-- Lock down plugin version for build reproducibility --> 
    <version>2.5</version> 
    <configuration> 
    <consoleOutput>true</consoleOutput> 
    <configLocation>checkstyle.xml</configLocation> 
    ... 
    </configuration> 
    <executions> 
    <execution> 
     <goals> 
     <goal>check</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 

现在,调用包括verify将调用CheckStyle的任何阶段。

因为我的系统中没有任何checkstyle.xml,它不应该抱怨我错误吗?

它会......被调用时(明确地通过mvn checkstyle:check或作为构建的一部分,如果您按照建议修改您的设置)。