我正在尝试让maven-checkstyle-plugin为我们所有的项目使用相同的配置文件。
我尝试了几种方法,但没有一种方法有效。
唯一可行的方法是将配置文件放在我的maven项目的根目录下,然后在pom.xml中使用名称作为configLocation配置参数
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>2.10</version>
<configuration>
<configLocation>my-checkstyle-checker.xml</configLocation>
</configuration>
</plugin>
我已尝试指定绝对磁盘路径,但这似乎不起作用。 (考虑到endgoal是让jenkins执行checkstyle,如果文件位于指定位置的jenkins服务器上,这似乎是一个有效选项)
我还尝试制作一个只包含xml文件的单独jar文件,然后将其用作依赖项。 (这也会将配置集中在一个位置,并防止项目特定的偏差。)不幸的是,这也不起作用。
[错误]无法在项目jenkins-sandbox-project上执行目标org.apache.maven.plugins:maven-checkstyle-plugin:2.10:checkstyle(default-cli):Checkstyle报告生成中发生错误。在checkstyle执行期间失败:无法在位置找到配置文件my-checkstyle-checker.xml:找不到资源'my-checkstyle-checker.xml'。 - &GT; [帮助1]
有没有人可以告诉我这里我做错了什么?
似乎它只知道与maven命令启动位置相同的文件。
答案 0 :(得分:10)
创建一个单独的Maven项目,该项目仅包含Checkstyle配置。在我的情况下,我调用了这个项目checkstyle-config
,它包含以下内容:
checkstyle-config\src\main\resources\checkstyle.config.xml
checkstyle-config\src\main\resources\checkstyle.suppressions.xml
checkstyle-config\pom.xml
这个项目的POM文件很简单:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.totaalsoftware.incidentmanager</groupId>
<artifactId>checkstyle-config</artifactId>
<version>2.0.0-SNAPSHOT</version>
</project>
构建它,以便安装它。然后将它用作Checkstyle执行的依赖项,例如:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>com.totaalsoftware.incidentmanager</groupId>
<artifactId>checkstyle-config</artifactId>
<version>2.0.0-SNAPSHOT</version>
</dependency>
</dependencies>
<configuration>
<configLocation>checkstyle.config.xml</configLocation>
<suppressionsLocation>checkstyle.suppressions.xml</suppressionsLocation>
... other configuration ...
</configuration>
</plugin>
答案 1 :(得分:1)
我有类似的问题。我用以下配置解决了它。
$ {} project.basedir /src/main/resources/checkstyle.xml
注意:我的checkstyle文件位于“src / main / resources”