java - 如何使用 Checkstyle 停止 Maven 构建

标签 java maven checkstyle

我已经设法将 Maven 与 Checkstyle 插件结合使用,并且可以根据我的代码创建报告。但我真正想要的是,如果样式检查有任何错误,我可以停止 Maven 的构建过程。

到目前为止,我的 pom.xml 如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.company.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.12</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <version>2.8</version>
      </plugin>
    </plugins>
  </reporting>
</project>

我怎样才能在这里实现我的目标?我们的团队希望有严格的编码风格标准,所以我必须使用它。

最佳答案

我意识到这个问题被问到已经有一段时间了,但以上答案都没有为我解决这个问题。

为了使构建因违规而失败,我不得不更改 violationSeverity默认值 errorwarningconfiguration block ,类似于:

<plugin>
    <artifactId>maven-checkstyle-plugin</artifactId>
    <version>2.17</version>
    <dependencies>
        <dependency>
            <groupId>com.puppycrawl.tools</groupId>
            <artifactId>checkstyle</artifactId>
            <version>7.5.1</version>
        </dependency>
    </dependencies>
    <executions>
        <execution>
            <id>validate</id>
            <phase>validate</phase>
            <configuration>
                <configLocation>checkstyle.xml</configLocation>
                <encoding>UTF-8</encoding>
                <consoleOutput>true</consoleOutput>
                <failsOnError>false</failsOnError>
                <failOnViolation>true</failOnViolation>
                <violationSeverity>warning</violationSeverity>
                <linkXRef>false</linkXRef>
            </configuration>
            <goals>
                <goal>check</goal>
            </goals>
        </execution>
    </executions>
</plugin>

此外,请注意我们已经建立了一个稍微修改过的样式版本(在 checkstyle.xml 中定义),主要基于最新的 google_checks.xml。 .但是,为了使其工作,com.puppycrawl.tools.checkstyle依赖项也必须更新。

关于java - 如何使用 Checkstyle 停止 Maven 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9113271/

相关文章:

java - 让checkstyle检查javax路径注解

java - Sonar : method length, 条件运算符

android - Checkstyle,无法创建根模块

java - java可以导入文本方法吗

java - OAuth2 Dropwizard(服务器)和 jQuery/Ajax(客户端)示例

java - 返回上一个屏幕不工作

java - 从多个 jar 中的单个 jar 加载类

java - Jenkins 运行所有组而不是指定组作为目标

java - Jboss 部署和 Java 堆问题

java - "not authorized to execute this request"使用 arangodb java 驱动程序