首页 > 解决方案 > Maven 和 Eclipse 使用的 Checkstyle 配置

问题描述

我尝试在 Maven 和 Eclipse 中使用相同的 Checkstyle 配置文件。模块 SuppressionCommentFilter 在 Eclipse 中按预期工作,但 Maven 报告 TreeWalker 不允许作为 SuppressionCommentFilter 的父级如果我将它从 TreeWalker 移动到 Checker 错误消失,但 Checkstyle 不处理忽略注释。我在 Eclipse 中使用 Checkstyle 8.12,但没有找到将 6.18 以外的其他方法与 Maven 一起使用。由于这个模块自 3.5 以来一直是 Checkstyle 的一部分,我不明白这可能是什么问题。有什么建议有什么问题吗?

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

马克问它是什么样子的,所以这是那段代码。

            <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <id>verify-style</id>
                    <phase>process-classes</phase>
                    <goals>
                        <goal>check</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

除了 If it is a child of Treewalker 之外,pom 和 Checkstyle 配置文件都正常工作
,我从 Maven 插件中得到错误,但不是来自 Eclipse 插件,但是我只能让它与 Eclipse 插件一起使用。

标签: eclipsemavencheckstyle

解决方案


看来您已将 checkstyle 定义为依赖项而不是插件。

使用Apache Maven Checkstyle上的指南,我能够将 checkstyle 用于我的个人项目。plugins这是我的部分的片段pom.xml

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>3.0.0</version>
    <executions>
        <execution>
            <id>verify-style</id>
            <phase>process-classes</phase>
            <goals>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>

    <configuration>
        <logViolationsToConsole>true</logViolationsToConsole>
        <configLocation>yourcheckstylexmlhere.xml</configLocation>
    </configuration>
</plugin>

GitHub 上的Maskime说:

亲爱的读者,如果您像我一样在这里用谷歌搜索,解决方案是移动模块<module name="SuppressionCommentFilter"/>下方 TreeWalker

我已经用你正在使用的版本尝试了这个修复,它不再给出错误了。


推荐阅读