sbl*_*ndy 7 maven-2 findbugs maven-plugin
我在我的父pom中定义了一个报告配置,它将在每个子孙项目中运行.
像这样:
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
<xmlOutput>true</xmlOutput>
<threshold>Low</threshold>
<effort>Min</effort>
<includeFilterFile>${basedir}/findbugsFilter.xml</includeFilterFile>
</configuration>
</plugin>
</plugins>
</reporting>
Run Code Online (Sandbox Code Playgroud)
麻烦的是每个孩子都插入它basedir而不是定义POM.我想我正在寻找与ANT相当的东西<property name="name" location="${basedir}"/>.
简短版本:findbugs-maven-plugin的文档中描述了您的问题的解决方案.您只需为构建配置创建一个单独的(顶级)项目,该项目包含您findbugsFilter.xml作为依赖项的项目和引用.
长版本:不幸的是,从Maven中的父项目或兄弟项目访问资源有点复杂.原因是:在构建子项目时,Maven不能假设父模块是一级别的,或者兄弟项目在文件系统中处于同一级别.事实上,它不能假设任何这些项目甚至在某处检查过!仅检查单个子项目并按原样构建它是完全合法的.因此,当使用Maven构建时,从本地存储库加载所有内容(极少数例外).这就是为什么您必须为要在多个模块中使用的资源创建单独的项目.然后可以将单独的项目添加为依赖项,并由一堆不同的Maven插件使用.示例包括:用于读取配置文件的checkstyle和findbugs插件,用于将外部文件复制到工件中的maven-dependency-plugin或用于加载外部属性文件的properties-maven-plugin.
我不确定这是否可以解决您的问题,但我有两个想法您可以尝试:
第一个想法
在父pom中定义一个属性,并在报告配置中使用它:
<properties>
<parent-basedir>${basedir}</parent-basedir>
</properties>
...
<reporting>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>1.2</version>
<configuration>
<xmlOutput>true</xmlOutput>
<threshold>Low</threshold>
<effort>Min</effort>
<includeFilterFile>${parent-basedir}/findbugsFilter.xml</includeFilterFile>
</configuration>
</plugin>
</plugins>
</reporting>
Run Code Online (Sandbox Code Playgroud)
第二个想法
另一个想法是使用 ${project.parent.basedir}:
...
<includeFilterFile>${project.parent.basedir}/findbugsFilter.xml</includeFilterFile>
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11663 次 |
| 最近记录: |