我尝试在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.xml
plugins
部分的片段:
<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
模块。
我也尝试了您正在使用的版本的此修复程序,但它不再给出错误。