我尝试在Maven和Eclipse中使用相同的Checkstyle配置文件。模块SuppressionCommentFilter在Eclipse中按预期工作,但是Maven报告 不允许TreeWalker作为SuppressionCommentFilter的父级 如果我将其从TreeWalker移至Checker,错误将消失,但Checkstyle不会处理忽略注释。我在Eclipse中使用了Checkstyle 8.12,但没有找到在Maven中使用6.18以外的方法。由于此模块自3.5以来一直是Checkstyle的一部分,所以我不认为这可能是问题所在。有什么建议吗?
<module name="Checker">
<property name="severity" value="warning" />
<module name="TreeWalker">
<property name="tabWidth" value="4" />
<module name="SuppressionCommentFilter" />
Mark询问外观如何,所以这是这段代码。
<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插件一起使用。
答案 0 :(得分:0)
似乎您已将checkstyle定义为依赖项而不是插件。
使用Apache Maven Checkstyle上的指南,我可以将checkstyle用于个人项目。这是我的plugins
的{{1}}部分的摘录:
pom.xml
GitHub上的Maskime说:
亲爱的读者,如果您像我一样在这里用Google搜索,解决方案是 将
<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>
移动到<module name="SuppressionCommentFilter"/>
模块。
我已经尝试过使用您正在使用的版本进行此修复,并且不再显示错误。
答案 1 :(得分:0)
我在Eclipse中使用Checkstyle 8.12,但未找到在Maven中使用6.18以外的方法
您必须重写maven中的依赖关系以引入Checkstyle的较新版本。默认情况下,maven插件将仅使用6.18,但可以被较新版本覆盖。
请参见https://maven.apache.org/plugins/maven-checkstyle-plugin/examples/upgrading-checkstyle.html