本文介绍了仅在父级中运行Maven插件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经创建了一个maven插件来启动、清理和停止数据库。我的项目由一个包含4个模块的POM文件组成:
<modules>
<module>infrastructure</module>
<module>domain</module>
<module>application</module>
<module>presentation</module>
</modules>
插件仅在此POM中指定,而不在模块的POM中指定。当我转到cmd启动数据库时:
mvn hsqldb:startdb
Maven尝试为每个POM文件创建一个数据库。它实际上启动了5个数据库(一个用于父POM,一个用于每个模块)。然而,我只想要一个(来自父母的POM)。在我的父POM文件中,插件声明如下:<plugin>
<groupId>sample.plugin</groupId>
<artifactId>hsqldb-maven-plugin</artifactId>
<version>1.0-SNAPSHOT</version>
<inherited>false</inherited>
<dependencies>
<dependency>
...
</dependency>
</dependencies>
<executions>
...
</executions>
<configuration>
...
</configuration>
</plugin>
我的问题有什么解决方案吗?
致以亲切的问候
Walle
推荐答案
两种方式:
在命令行上执行
mvn hsqldb:startdb -N
(Source)或
使用
注释您的插件@aggregator
(Source)
虽然没有明确说明,但这意味着您的插件负责生成子模块,即不会自动生成子模块。
无论哪种方式,它都将只构建顶级项目,而不是深入到模块中。据我所知,您不可能在POM中配置此功能。
这篇关于仅在父级中运行Maven插件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!