如何使用maven跳过特定的checkstyle规则

时间:2014-07-04 04:42:06

标签: java maven checkstyle

我有一个现有的项目,我试图将checkstyle检查作为构建的一部分添加。我看到以下输出:

A.java:15:1: Line contains a tab character.
B.java:16: Line has trailing spaces.

A.java中报告的错误违反了我的组织遵循的编码标准。因此,我想单独跳过项目中所有文件的规则。

有人可以建议我如何完成这项工作?

4 个答案:

答案 0 :(得分:1)

要在pom.xml中定义自定义Checkstyle检查器配置,请使用checkstyleRules参数。

允许制表符使用FileTabCharacter模块

<module name="FileTabCharacter">
    <property name="eachLine" value="false"/>
</module>

答案 1 :(得分:0)

Checkstyle没有提供类似“使用此配置,以下规则”之类的选项。相反,您必须提供自定义规则集,其中仅包含您要使用的规则。

您可以指定Checkstyle Maven插件应使用的规则配置:

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

在引用的 checkstyle.xml 中,您只需删除不需要的规则即可。在您的情况下,删除说:

的行
<module name="FileTabCharacter"/>

Checkstyle只执行配置中提到的明确规则。这是how to write a checkstyle.xml。默认规则文件为this one

答案 2 :(得分:0)

Checkstyle 3.2 添加了对 SuppressionFilter 的支持。公共 Maven 存储库列出的发布日期为 2005 年 11 月 8 日,但他们也列出了其他几个版本的相同发布日期,因此据推测,这是某些迁移的日期,但该版本至少从那时起就可用。 maven-checkstyle-plugin 中的默认 Checkstyle 版本为 4.1 at least since January of 2006

您可以通过 Maven configure the suppression filter,独立于其他答案引用的 checkstyle 配置 XML。

像这样的抑制配置应该有助于解决您在问题中分享的场景:

<?xml version="1.0"?>
 
<!DOCTYPE suppressions PUBLIC
     "-//Checkstyle//DTD SuppressionFilter Configuration 1.0//EN"
     "https://checkstyle.org/dtds/suppressions_1_0.dtd">
 
<suppressions>
  <suppress checks="FileTabCharacter" files=".*\.java" />
</suppressions>

答案 3 :(得分:-1)

Checkstyle错误并不严重。你可以禁用checkstyle插件,把

  

<plugin> <artifactId>maven-checkstyle-plugin</artifactId> <configuration> <skip>true</skip> </configuration> </plugin>

在pom.xml文件中