首页 > 解决方案 > Checkstyle LineLength 配置不起作用

问题描述

在尝试添加maven-checkstyle-plugin到我的 Java 项目时,我遇到了一些奇怪的问题。checkstyle 版本是 3.1.0,它使用 checkstyle 版本 8.19。以下是checkstyle.xml项目正在使用:

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
          "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
          "https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="TreeWalker">
    <module name="LineLength">
        <property name="max" value="120"/>
    </module>
</module>

和我在 pom.xml 上的配置

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

现在,当我运行时mvn checkstyle:check,会显示以下消息:

[错误] 无法在项目 myproject 上执行目标 org.apache.maven.plugins:maven-checkstyle-plugin:3.1.0:check (default-cli):在 checkstyle 配置期间失败:在 Checker 中不允许 LineLength 作为子项 - > [帮助1]

如果我更新 checkstyle 使其看起来像这样

<?xml version="1.0"?>
<!DOCTYPE module PUBLIC
          "-//Checkstyle//DTD Checkstyle Configuration 1.3//EN"
          "https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="LineLength">
        <property name="max" value="120"/>
</module>

我收到以下消息

[错误] 无法在项目 myproject 上执行目标 org.apache.maven.plugins:maven-checkstyle-plugin:3.1.0:check (default-cli):在 checkstyle 配置期间失败:属性“max”不存在,请检查文档 -> [帮助 1]

我无法推理发生了什么,因为对我来说,错误消息具有误导性。我在这个配置上缺少什么?

标签: javamavencheckstylemaven-checkstyle-plugin

解决方案


实际上,在较新的版本中LineLength不应再下,TreeWalker而是直接下。Checker见这里: https ://github.com/checkstyle/eclipse-cs/issues/190


推荐阅读