这是我在当前项目中所做的,它放在findbugs-exclude.xml
父项目中(我知道你不想要),但它解决了在两个地方维护它的 DRY 问题。它比解包更简单,但要求完整的项目结构是本地的。(我认为解包解决方案对于在许多项目中使用相同的配置很有用,就像在公司环境中一样。)
我将我的 findbugs 配置存储在 中parent/src/main/resources/shared/findbugs-exclude.xml
,但只要它位于父目录中,特定目录就无关紧要。
然后我使用属性来描述“共享”目录的位置:
<properties>
<myproject.parent.basedir>${project.parent.basedir}</myproject.parent.basedir>
<myproject.parent.shared.resources>${myproject.parent.basedir}/src/main/resources/shared</myproject.parent.shared.resources>
</properties>
并在父级中配置 findbugs 时引用这些属性:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<configuration>
<excludeFilterFile>${myproject.parent.shared.resources}/findbugs-exclude.xml</excludeFilterFile>
</configuration>
...
</plugin>
所有直接子项目现在都将运行 findbugs,引用父项中的配置文件。如果您有多个级别的项目嵌套,则必须覆盖myproject.parent.basedir
子父级中的 。例如,如果您有 parent <- sub-parent <- child,您将输入:
<properties>
<myproject.parent.basedir>${project.parent.parent.basedir}</myproject.parent.basedir>
</properties>