Checkstyle LineLength 配置不起作用

lui*_*fzs 4 java checkstyle maven maven-checkstyle-plugin

在尝试添加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>
Run Code Online (Sandbox Code Playgroud)

和我在 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>
Run Code Online (Sandbox Code Playgroud)

现在,当我运行时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>
Run Code Online (Sandbox Code Playgroud)

我收到以下消息

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

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

Rad*_*nov 8

实际上,在新版本中LineLength不应该再位于下面TreeWalker,而是直接位于下面。Checker请参阅此处: https: //github.com/checkstyle/eclipse-cs/issues/190


SDJ*_*SDJ 5

与示例的 1.3 DTD 匹配的结构如下(即,您似乎缺少该Checker模块)。

<module name="Checker">
    <module name="TreeWalker">
        <module name="LineLength">
            <property name="max" value="120"/>
        </module>
    </module>
</module>
Run Code Online (Sandbox Code Playgroud)