我使用 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-module
和 scala-module
中的所有类。我怎样才能告诉maven忽略scala-module
作为一个整体?我知道 FindBugs 排除过滤器,但我希望有一个 FindBugs 的配置选项,告诉它不要分析某个子模块中的代码。
FindBugs 在子目录 java-module
的 pom.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/