我是maven和chekstyle的新手,所以需要问一些问题......我想在我的maven项目中使用checkstyle,所以在pom.xml
中我添加了依赖
<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>
但是当我使用命令mvn clean install
运行我的maven构建时,checkstyle不会做任何事情。由于我的系统中还没有checkstyle.xml
,我不应该抱怨这个错误吗?
我缺少什么配置?
答案 0 :(得分:8)
我想在基于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
明确地显示,或者如果你按照建议修改你的设置,它将作为构建的一部分)。