Maven 2 checkstyle插件版本2.5 - configLocation问题

时间:2010-02-17 10:23:12

标签: maven-2 checkstyle

我在maven 2中使用checkstyle插件。我现在想要将配置文件从默认配置文件切换到a)在线文件,或b)本地文件。我尝试了以下两件事,两件都没有用。有什么建议吗?

A)本地文件,直接位于pom.xml旁边的项目文件夹中

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

B)远程文件,存储在服务器上

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <configuration>
        <configLocation>http://stud.hs-heilbronn.de/~nischmid/development/checkstyle-config.xml</configLocation>
    </configuration>
</plugin>

这两种情况都会导致如下错误:

  

[INFO]发生错误   Checkstyle报告生成。嵌入式   错误:在checkstyle期间失败   执行无法找到资源   '文件:checkstyle.xml'。

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:6)

我在Jira中看到了与configLocation相关的几个与插件版本2.5相关的问题(如MCHECKSTYLE-129MCHECKSTYLE-131),a)和b)只需使用版本2.4即可。

所以,除非你使用Maven 3,否则我建议现在回滚到2.4:

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

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-checkstyle-plugin</artifactId>
  <version>2.4</version>
  <configuration>
    <configLocation>http://stud.hs-heilbronn.de/~nischmid/development/checkstyle-config.xml</configLocation>
  </configuration>
</plugin>

作为旁注,对于多模块构建,请查看Multimodule Configuration

答案 1 :(得分:6)

我一直在尝试使用Checkstyle插件的3.0.1版本,发现configLocation无效。试过上面的方法,但仍然没有运气。

总而言之,上面的答案可能确实有效,但您可能需要设置属性checkstyle.config.location

使用-X获取调试输出,我看到:

[DEBUG]   (f) configLocation = config/sun_checks.xml

在日志中进一步滚动,看起来configLocation未设置:

<configLocation default-value="config/sun_checks.xml">${checkstyle.config.location}</configLocation>

根据该消息,我在全局<properties>中设置属性,如下所示:

<checkstyle.config.location>${basedir}/config/checkstyle-configuration.xml</checkstyle.config.location>

这很有效,但导致插件抛出异常。在一些谷歌搜索后,我将以下内容添加到checkstyle配置文件中:

<module name="Checker">
  ...
  <module name="TreeWalker">
    ...
    <property name="cacheFile" value=""/>

为了完整性,最后一步来自以下Jira,在2.8中标记为已解决。区别在于它似乎使用空值,无需设置${cachefile}属性:

http://jira.codehaus.org/browse/MCHECKSTYLE-159

答案 2 :(得分:1)

对于仍需要找到解决方法的其他人可能会有所帮助。 顺便说一句,我遇到了同样的问题,并且假设要在/classes/.xml或文件夹中搜索文件。但是因为它正在直接查看我包含的项目文件夹

<configuration>
<configLocation>src\main\resources\checkstyle-checker-dev.xml</configLocation>
</configuration>

注意:configLocation有L个大写

您也可以在环境中定义全局变量并在此处使用 注意:这只是一种解决方法,需要按照上面的说明进行操作。