当前位置: 首页 > 面试题库 >

迫使Maven失败基于非null违反的构建

钱钊
2023-03-14
问题内容

我有下面的简单代码,用于使用maven测试findbugs NonNull批注。

我执行“ mvn clean install site”,得到目录target / site / css和target / site /
images,但仅此而已。我原本希望得到一份报告,说println(null)违反了NonNull条件。

我需要怎么做才能得到那个报告?

另外,如果存在NonNull违例,是否有办法阻止“ mvn全新安装”成功?

注意:我知道我可以通过Sonar获得此类报告。但是,如果出现此类错误,我希望“ mvn全新安装”失败,并且此后无需使用可选的Sonar工具。

src / main / java / test / Hello.java

package test;
import edu.umd.cs.findbugs.annotations.NonNull;
public class Hello {
    static public void print(@NonNull Object value) {
        System.out.println("value: " + value.toString());
    }

    static public void main(String[] args) {
        if (args.length > 0) {
            print(args[0]);
        } else {
            print(null);
        }
    }
}

和pom.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>hello</groupId>
  <artifactId>hello</artifactId>
  <version>1.0</version>

  <dependencies>
    <dependency>
      <groupId>net.sourceforge.findbugs</groupId>
      <artifactId>annotations</artifactId>
      <version>1.3.2</version>
    </dependency>
    <dependency>
      <groupId>net.sourceforge.findbugs</groupId>
      <artifactId>jsr305</artifactId>
      <version>1.3.7</version>
    </dependency>
  </dependencies>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>2.5.2</version>
      </plugin>
    </plugins>
  </reporting>
</project>

-–

更新,解决方案

解决方案,基于来自Augusto的答案:将其添加到项目下的pom.xml文件中:

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.6</source>
          <target>1.6</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>2.5.2</version>
        <configuration>
          <includeTests>true</includeTests>
        </configuration>
        <executions>
          <execution>
            <phase>compile</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
          <execution>
            <id>findbugs-test-compile</id>
            <phase>test-compile</phase>
            <goals>
              <goal>check</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>

这样,如果出现NonNull违例,“ mvn全新安装”将失败。

报告对我不起作用,因为我使用的是maven 3,并且报告功能在maven 3中已更改(现在它使用的是普通的maven插件)


问题答案:

大卫,

您问题的答案在findbugs maven插件文档中(请参阅findbugs:check)



 类似资料:
  • 这是我的代码,但当我尝试插入另一个“analise”时,num\u cedula,num\u doente,data\u analise为NULL,它会给我这个错误(“错误:num\u cedula”列中的NULL值违反了非NULL约束细节:失败的行包含(32,Ortopedia,NULL,NULL,NULL,NULL,2019-12-02,glicemia,176,Instituicao1)。S

  • 我正在TFS2015中运行一个构建,我得到了这个错误: 在org.apache.maven.lifecycle.internal.mojoexecutor.execute(mojoexecutor.java:217) 原因:org.apache.maven.plugin.MojoExecutionException:编译时出现致命错误 222 2018-07-25T11:22:37.0150577

  • [错误]D:...\spark-test\java-gett-start\src\main\java\main.java:[73,35]错误:源代码1.5中不支持lambda表达式 这是一个heroku示例java项目,在System.properties文件中设置了java版本:java.runtime.version=1.8 具体行如下:

  • 我试图使用JDK 6(在Eclipse Luna,Java EE版中)构建Maven 3.2.5,但我一直收到以下错误: 经过调查,Maven下载了plexus-classworlds-2.5.2-sources。jar,它是为JDK 7编译的,这就是问题的原因。Maven 3.2.5应该与JDK 6一起工作,所以我不知道发生了什么。 这是绒球.xml:

  • ----maven-enforcer-plugin:1.0.1:enforce(default)@cli---添加ignore:org.eclipse.jetty.spdy.* ----maven-enforcer-plugin:1.0.1:enforce(enforce-bang-dependencies)@cli-- ---build-helper-maven-plugin:1.7:times

  • 我正在尝试发布mvn,但由于git的问题,它失败了。我以前多次这样做都没有遇到这个问题,我真的不明白为什么会发生这种情况。 我首先是在mvn release:prepare中得到它的,但通过在我的根pom中添加下面显示的最后一行来绕过它: 但是现在,当我尝试做mvn发布:执行时,我再次收到错误消息: 我不明白它从哪里得到的想法,我的git安装文件夹应该是一个git存储库!错误发生前记录的git c