首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Maven Checkstyle configLocation是否已忽略?

Maven Checkstyle configLocation是否已忽略?
EN

Stack Overflow用户
提问于 2012-01-24 00:35:03
回答 1查看 14.3K关注 0票数 19

在非常简单的情况下,尝试根据guidelines on the apache site在maven pom中设置自定义检查样式配置是行不通的。

我创建了一个项目,MyProject,使用Maven推荐的目录布局(即src/main/java/,src/main/resources),一个文件MyClass.java:

代码语言:javascript
复制
package com.myproject;

public class MyClass {

   public static void main(String[] args) {
      System.out.println("This line is longer than 80 characters which returns an error in sun_checks.xml, however my_checks.xml allows for much longer lines and will not return a long line error.");
   }
}

一个空的检查样式文件my_checks.xml:

代码语言:javascript
复制
<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
    "-//Puppy Crawl//DTD Check Configuration 1.2//EN"
    "http://www.puppycrawl.com/dtds/configuration_1_2.dtd">

<module name="Checker">
    <property name="severity" value="warning"/>
    <module name="TreeWalker">
    </module>
</module>

以及根据指南中的规范的pom文件:

代码语言:javascript
复制
<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>com.myproject</groupId>
    <artifactId>A_Project</artifactId>
    <name>A Project</name>
    <version>1.0.0</version>

    <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.8</version>
        <configuration>
          <configLocation>my_checks.xml</configLocation>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
</project>

运行'mvn -X checkstyle: checkstyle‘正在使用sun_checks.xml (默认),而不是使用my_checks.xml文件中的配置,这可以从产生的检查样式错误和调试输出(例如,‘'DEBUG request.getConfigLocation() config/sun_checks.xml')。

我知道my_checks.xml是有效的,因为可以使用Carboni在previous stack overflow post中概述的策略在属性中更改checkstyle.config.location,但这会在迁移到多模块项目时产生问题,并且不同于apache maven的官方检查样式说明。

EN

回答 1

Stack Overflow用户

发布于 2012-12-23 20:25:34

是的,我发现apache网站上的指南已经过时了。通过在互联网上搜索和收集信息,我设法解决了这个问题。

移动到<build>标签工作了一段时间,但当更新到最新的检查样式时,它再次被忽略。我发现我必须设置一个属性:

代码语言:javascript
复制
<project ...>

 ....

  <properties>
    <checkstyle.config.location>properties/checkstyle-configuration.xml</checkstyle.config.location>
  </properties>

  <build>
    ...

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.9.1</version>
      </plugin>
    </plugins>
  </build>

  ...

</project>

这是我如何创建您自己的checkstyle自定义检查的示例的一部分,可在此处找到:

http://blog.blundellapps.com/create-your-own-checkstyle-check/

取自这里的源代码:

https://github.com/blundell/CreateYourOwnCheckStyleCheck

票数 28
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8975096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档