将module-info.java
个文件添加到我的项目后,我的checkstyle插件开始失败:
[错误]无法执行目标 org.apache.maven.plugins:Maven的CheckStyle的-插件:2.17:检查 项目电子邮件中的(default-cli):在checkstyle期间失败 配置:分析期间发生NoViableAltException 文件 /home/xxx/IdeaProjects/blynk-server/server/notifications/email/src/main/java/module-info.java。 意外令牌:模块 - > [帮助1]
我试过
<module name="BeforeExecutionExclusionFileFilter">
<property name="fileNamePattern" value="module\-info\.java$"/>
</module>
然而,它失败了:
[错误]无法执行目标 org.apache.maven.plugins:Maven的CheckStyle的-插件:2.17:检查 项目blynk上的(default-cli):在checkstyle期间失败 配置:无法初始化模块 BeforeExecutionExclusionFileFilter - 无法实例化 &#39; BeforeExecutionExclusionFileFilter&#39;上课,也是不可能的 将其实例化为 com.puppycrawl.tools.checkstyle.checks.annotation.BeforeExecutionExclusionFileFilter
在checkstyle期间为maven-checkstyle-plugin跳过module-info.java
个文件的正确方法是什么?
答案 0 :(得分:14)
不确定为什么Checkstyle过滤器不起作用(这个reported bug看起来与你的非常相似,并且在7.3.0版中修复了,所以你可能需要更新Checkstyle)。
无论如何,Maven excludes
元素也应该这样做:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<configuration>
<excludes>**/module-info.java</excludes>
</configuration>
</plugin>
plugin goal文档中的更多内容。
答案 1 :(得分:5)
BeforeExecutionExclusionFileFilter
。
但是maven-checkstyle-plugin
版本3.0.0(截至2018-04-01的最新版本)默认使用Checkstyle 6.18。
&#34; Checkstyle的&#34;和&#34; Checkstyle Maven插件&#34;是不同的东西,有不同的发布周期。
您可能需要upgrade the Checkstyle version,如下所示:
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.0.0</version> <!-- Checkstyle Plugin version -->
<!-- ... Configuration, Executions ... -->
<dependencies>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.8</version> <!-- Checkstyle version -->
</dependency>
</dependencies>
</plugin>
之后,将识别BeforeExecutionExclusionFileFilter
以及其他较新的Checkstyle功能(例如新检查)。
答案 2 :(得分:4)
虽然这不是一个可以作为答案的资格。然而,为了记录maven-checkstyle-plugin
所在的曲目,请注意太长而无法评论: -
2.17
的{{3}}于2015年10月15日,差不多2年了。org.apache.maven.plugins:maven-checkstyle-plugin:3.0.0
,这将会理解{{ 1}}作为一个班级。3.0.0-SNAPSHOT
doc不一致,后者指定了正在升级以支持JDK-9的模块和插件列表。