仅在父级中运行 Maven 插件
Posted
技术标签:
【中文标题】仅在父级中运行 Maven 插件【英文标题】:Running a maven plugin only in the parent 【发布时间】:2011-08-27 19:34:36 【问题描述】:我创建了一个 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>
我的问题有什么解决方案吗?
亲切的问候,
华尔
【问题讨论】:
【参考方案1】:两种方式:
在命令行,执行mvn hsqldb:startdb -N
-N
,--non-recursive
不要递归到子项目中
(Source) 或
用@aggregator
注释你的插件
标记此 Mojo 以在 multi 中运行它 模块方式,即聚合构建 项目集列为 模块。
(Source)
虽然没有明确说明,但这意味着您的插件负责构建子模块,即不会自动构建子模块。
无论哪种方式,它都只会构建顶层项目,而不会下降到模块中。 我不知道你可以在 pom 中配置它。
【讨论】:
以上是关于仅在父级中运行 Maven 插件的主要内容,如果未能解决你的问题,请参考以下文章
检测一个 UIView 是不是在父级中的另一个 UIView 后面