Maven 和 Eclipse 使用的 Checkstyle 配置



我尝试在Maven和Eclipse上使用相同的Checkstyle配置文件。模块 SuppressionCommentFilter 在 Eclipse 中按预期工作,但 Maven 报告 不允许将 TreeWalker 作为 SuppressionCommentFilter 的父级 如果我将其从TreeWalker移动到Checker,错误就会消失,但是Checkstyle不会处理忽略注释。我正在将 Checkstyle 8.12 与 Eclipse 一起使用,但除了 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>

pom 和 Checkstyle 配置文件都正常工作
,除了 如果它是 Treewalker 的孩子,我从 Maven 插件收到错误,但不是从 Eclipse 插件,但是我只能让它与 Eclipse 插件一起使用。

我正在将 Checkstyle 8.12 与 Eclipse 一起使用,但除了 6.18 与 Maven 一起使用之外,还没有找到其他方法

您必须覆盖 maven 中的依赖项才能引入较新版本的 Checkstyle。默认情况下,maven 插件将仅使用 6.18,但对于较新版本,它可以被覆盖。

请参阅 https://maven.apache.org/plugins/maven-checkstyle-plugin/examples/upgrading-checkstyle.html

您似乎已将检查样式定义为依赖项而不是插件。

使用Apache Maven Checkstyle的指南,我能够在我的个人项目中使用checkstyle。这是我pom.xmlplugins部分的片段:

<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模块。

我也尝试了您正在使用的版本的此修复程序,但它不再给出错误。

最新更新