【问题标题】:How to fix the maven check style error如何修复 Maven 检查样式错误
【发布时间】:2016-05-11 00:27:40
【问题描述】:

目前我只是尝试下载和构建以使 Netty 源代码工作。但是当我尝试在源文件夹中运行命令mvn eclipse:eclipse 时。我收到一个错误提示

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.10:check (check-style) on project netty-common: Failed during checkstyle execu
tion: There are 304 checkstyle errors. -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.10:check (check-style) on proj
ect netty-common: Failed during checkstyle execution
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:212)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.MojoExecutor.executeForkedExecutions(MojoExecutor.java:352)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:197)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
        at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Failed during checkstyle execution
        at org.apache.maven.plugin.checkstyle.CheckstyleViolationCheckMojo.execute(CheckstyleViolationCheckMojo.java:374)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:207)
        ... 24 more
Caused by: org.apache.maven.plugin.checkstyle.CheckstyleExecutorException: There are 304 checkstyle errors.
        at org.apache.maven.plugin.checkstyle.DefaultCheckstyleExecutor.executeCheckstyle(DefaultCheckstyleExecutor.java:218)
        at org.apache.maven.plugin.checkstyle.CheckstyleViolationCheckMojo.execute(CheckstyleViolationCheckMojo.java:365)

验证代码netty-common项目时checkstyle插件出错。

我不熟悉这个插件。我想知道是否可以通过从 pom.xml 中删除配置来忽略它(在 中)。如下所示。

<plugin>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.10</version>
        <executions>
          <execution>
            <id>check-style</id>
            <goals>
              <goal>check</goal>
            </goals>
            <phase>validate</phase>
            <configuration>
              <consoleOutput>true</consoleOutput>
              <logViolationsToConsole>true</logViolationsToConsole>
              <failsOnError>true</failsOnError>
              <failOnViolation>true</failOnViolation>
              <configLocation>io/netty/checkstyle.xml</configLocation>
              <includeTestSourceDirectory>true</includeTestSourceDirectory>
            </configuration>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>${project.groupId}</groupId>
            <artifactId>netty-build</artifactId>
            <version>21</version>
          </dependency>
        </dependencies>
      </plugin>

有什么想法吗?谢谢。

【问题讨论】:

  • 你不应该再运行mvn eclipse:eclipse 使用作为 Maven 项目导入 Eclipse。

标签: java maven netty


【解决方案1】:

使用跳过检查样式执行

-Dcheckstyle.skip

mvn [YOUR_COMMAND] -Dcheckstyle.skip

【讨论】:

  • 这适用于您的本地计算机,但如果您想向 Netty 项目提交补丁,则不能。
  • 这行得通。我的情况不同。我想“mvn clean install”一个火花项目。我没有 maven-check-style.xml 或没有参考。但看了这个解决方案,我想试试看它是否有效“ mvn clean install -Dcheckstyle.skip”
【解决方案2】:

CheckStyle 是 maven 的一个模块,用于检查代码的样式,例如制表符而不是空格。 Netty 正在使用它来防止基本的格式错误。

如果您打算为 Netty 做出贡献,则不应删除该插件,因为这可能意味着您的补丁永远不会应用。

如果您只是用来玩,您可以随意删除该插件,因为它的唯一目的是验证安装,而不是更改安装中的内容。

如果您选择保留它,您应该查看输出日志以查看它检测到哪些错误,要快速修复错误,请参阅thisMatthew Farwell 的回答。

  1. 在 Package Explorer 或其他任何地方右键单击 java 文件,然后选择“Apply Checkstyle Corrections”。
  2. 单击问题视图中的错误,然后选择“快速修复”。这解决了问题。

【讨论】:

  • 在遇到错误后,我在项目文件夹中搜索字符串“checkstyle”,但没有找到任何内容。 grep -i "checkstyle" -r 。所以有趣的是是什么触发了这个检查......
【解决方案3】:

虽然我既不熟悉 Netty 也不熟悉 maven eclipse 插件,但我在构建 pwm 项目时确实遇到了 maven-checkstyle-plugin 的问题。

这是错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check (validate) on project pwm: Failed during checkstyle configuration ....

我的解决方案(顺便说一句,这也解决了许多与 maven 相关的错误):

删除 maven 的 .m2 文件夹,然后重新构建项目。 在 linux 系统上,.m2 文件夹通常位于您的主文件夹 /home/&lt;username&gt;/.m2

【讨论】:

    【解决方案4】:

    如果您刚刚克隆了存储库并且构建失败,我相信您使用的是 Windows 并且您的 Git 配置有问题。请将“core.autocrlf”选项设置为“true”,重新克隆存储库,然后重试。

    git config --global core.autocrlf true
    

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题,我通过在我的 pom 文件中添加以下内容禁用了 pom 的 checkstyle,它对我有用。

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <executions>
              <execution>
                  <id>checkstyle-validation</id>
                  <phase>none</phase>
              </execution>
          </executions>
      </plugin>
      

      【讨论】:

      • 拥有 CheckStyle 插件和禁用验证有什么意义?
      【解决方案6】:

      在我的情况下,我只是尝试执行相同的目标,但使用 -X 选项(启用调试级别)并发现类检查样式插件在抱怨什么。更正样式并再次运行 maven -> 构建成功。

      【讨论】:

        【解决方案7】:

        通过运行带有 -X 选项的 mvn install 来解决此问题的最佳方法它将为您提供有关课堂样式问题的详细信息。您可以相应地修复课程。

        【讨论】:

          【解决方案8】:

          我通过删除 pom.xml 中的 check-style 配置并重建 maven 解决了这个问题。当我后来重新插入并构建时,它可以正常工作。

          【讨论】:

            【解决方案9】:

            在 Linux 操作系统上我使用 dos2unix 解决了。

            cd presto;
            find . -type f -exec dos2unix {} \;
            

            【讨论】:

              【解决方案10】:

              只需执行“mvn spotless:apply”,为我工作

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2018-05-01
                • 1970-01-01
                • 2016-09-28
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多