Cod*_*rer 42 plugins reporting dependency-management maven
我有一个maven多模块项目(男孩,我已经写了打开方式在这个网站太多次了).几乎所有模块(即其中包含代码的模块)都应运行maven-site-plugin来生成有关代码覆盖率等的报告.这些模块具有详细的共享配置 - 报告运行,要覆盖哪些文件/排除某些插件等
但是,有一些模块可以处理打包 - 运行程序集插件以生成tarball等.这些都不会从运行站点报告中获得任何好处 - 没有可以分析的代码,也没有可以报告的测试.
所以我有很多需要共享插件配置的模块,以及一些不需要运行插件的模块,最好是根本不需要.如果我把插件放在<build>父POM 的部分中,我可以做前者(共享配置),但在这种情况下,我似乎无法关闭插件.如果我将配置下推到每个模块自己的POM,我可以做后者(避免运行插件),但在这种情况下我无法想出一个分享配置信息的好方法.
我想要的是 - 共享配置,对于有时被子模块禁用的插件 - 甚至可能吗?如果是这样,怎么样?
Rya*_*art 72
通过"运行插件",我假设您的意思是插件已经绑定到生命周期阶段,并且您希望在某些模块中取消绑定它.首先,您可以考虑更改POM继承,以便不需要插件的模块具有一个父节点和具有不同父节点的模块.如果您不想这样做,那么您可以在子模块中将执行阶段显式设置为"nothing".例如,如果您有这样的父pom配置:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>i-do-something</id>
<phase>initialize</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
... lots of configuration
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
然后在子模块中,您可以这样做:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<id>i-do-something</id>
<phase/>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
因为它是相同的插件和相同的执行ID,所以它会覆盖父项中指定的配置,现在插件不会绑定到子项目中的某个阶段.
| 归档时间: |
|
| 查看次数: |
22535 次 |
| 最近记录: |