maven - 如何配置 FindBugs 仅在多模块 Maven 项目中的一个项目上运行

标签 maven findbugs

我使用 findbugs-maven-plugin 来检查 maven 的错误。我的maven项目是一个多模块项目,大致如下:

java-module
    pom.xml
    src/ ...
pom.xml
scala-module
    pom.xml
    src/ ...

我使用 Jenkins 来构建和测试项目,Jenkins 在最顶层目录中运行目标 findbugs:findbugs 。由于 FindBugs 报告了 Scala 编译器生成的代码的许多虚假警告,因此我想告诉 FindBugs 不要分析 scala-module 中的代码。但是,当我在最顶层目录中运行 findbugs:findbugs 时,它总是分析 java-modulescala-module 中的所有类。我怎样才能告诉maven忽略scala-module作为一个整体?我知道 FindBugs 排除过滤器,但我希望有一个 FindBugs 的配置选项,告诉它不要分析某个子模块中的代码。

FindBugs 在子目录 java-modulepom.xml 中配置如下:

<reporting>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>findbugs-maven-plugin</artifactId>
      <version>${version.plugin.codehaus.findbugs}</version>
      <configuration>
        <findbugsXmlOutput>true</findbugsXmlOutput>
        <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
        <xmlOutput>true</xmlOutput>
      </configuration>
    </plugin>
  </plugins>
</reporting>

尽管仅针对 java-module 进行了配置,FindBugs 也始终会分析 scala-module

最佳答案

在 scala-module pom.xml 中添加一个配置,明确指示 findbugs 跳过该模块,即

<reporting>
  <plugins>
    <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>findbugs-maven-plugin</artifactId>
      <configuration>
        <skip>true</skip>
      </configuration>
    </plugin>
  </plugins>
</reporting>

请注意,对于此类情况,Maven 通常要求您重复样板 XML。

关于maven - 如何配置 FindBugs 仅在多模块 Maven 项目中的一个项目上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17150017/

相关文章:

android - 如何创建兼容 eclipse 的 mavenised Android 项目?

java - 如何使用maven构建一个自包含的可执行jar?

findbugs - 哪些错误适用于不同的 FindBugs 报告级别?

java - 如果无法更改接口(interface),如何重构此方法?

Maven 版本范围 - 下载所有可用版本,而不仅仅是最新版本

java - eclipse :eclipse in maven?后如何执行代码

java - 如何在 Tomcat 上部署正确的 "overlay"war

java - 如何正确关闭 java 命令行程序

maven - 有没有办法调试 findbugs 过滤器?

c - 有什么工具可以捕捉 C 代码中的愚蠢错误?