繁体   English   中英

如何从checkstyle插件检查中排除module-info.java?

[英]How to exclude module-info.java from checkstyle plugin checks?

module-info.java文件添加到我的项目后,我的checkstyle插件开始失败:

[错误]无法执行目标org.apache.maven.plugins:maven-checkstyle-plugin:2.17:检查(default-cli)项目电子邮件:在checkstyle配置期间失败:在分析文件/ home / xxx /期间发生NoViableAltException IdeaProjects / blynk服务器/服务器/通知/电子邮件/ src目录/主/ JAVA / module-info.java。 意外令牌:模块 - > [帮助1]

我试过了

<module name="BeforeExecutionExclusionFileFilter">
    <property name="fileNamePattern" value="module\-info\.java$"/>
</module>

然而,它失败了:

[错误]无法执行目标org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check(default-cli)on project blynk:checkstyle配置失败:无法初始化模块BeforeExecutionExclusionFileFilter - 无法实例化'BeforeExecutionExclusionFileFilter'类,也无法将其实例化为com.puppycrawl.tools.checkstyle.checks.annotation.BeforeExecutionExclusionFileFilter

在checkstyle期间为maven-checkstyle-plugin跳过module-info.java文件的正确方法是什么?

不确定为什么Checkstyle过滤器不起作用(这个报告的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>

更多插件目标文档。

在Checkstyle 7.2中添加了BeforeExecutionExclusionFileFilter

maven-checkstyle-plugin版本3.0.0(截至2018-04-01的最新版本)默认使用Checkstyle 6.18。

“Checkstyle”和“Checkstyle Maven插件”是不同的东西,有不同的发布周期。

您可能需要升级Checkstyle版本 ,如下所示:

<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功能(例如新检查)。

虽然这不可能作为答案。 然而,为了记录maven-checkstyle-plugin所在的轨道,请注意太久以至于无法发表评论: -

  • 2015年10月15日的最新版本2.17版,差不多2年了。
  • maven-plugins的当前主干在3.0.0-SNAPSHOT版本中指向插件中正在进行的工作,这可能意味着我们很快就会期待org.apache.maven.plugins:maven-checkstyle-plugin:3.0.0 。不久的将来,将把module-info.java理解为一个类。
  • 这与Java + 9 + - + Jigsaw文档不一致,后者指定了正在升级以支持JDK-9的模块和插件列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM