我们有一个多模块Maven项目,由父POM和5个或更多模块组成。
如果我们激活我们的自定义“自动部署”配置文件,每个模块都可以部署到正在运行的服务器上,这个配置文件在每个模块中明确定义,因为每个模块的部署方式和部署方式略有不同。模块。
当从父POM构建时,如果我激活“自动部署”配置文件,Maven将最终部署所有模块,这几乎不是我们需要做的(基于我们的开发过程等)。但我们确实希望从根构建,因为可以在多个模块之间进行更改,并且某些模块之间存在依赖关系。
从父POM构建时,是否有办法为其中一个模块激活我们的自定义“自动部署”配置文件,但不是全部?
由于
答案 0 :(得分:4)
如果您的每个模块都有自己的“自动部署”配置文件,并且配置文件激活将由传递给mvn
命令的变量触发,您将能够在父模块上运行单个mvn命令并决定应简单地通过声明激活变量来部署哪些模块
<profiles>
<profile>
<id>profileId</id>
<activation>
<property>
<name>profileIdEnabled</name>
<value>true</value>
</property>
</activation>
<properties></properties>
</profile>
</profiles>
然后
mvn -DprofileIdEnabled=true
答案 1 :(得分:3)
查看Maven: The Complete Reference - Section 6.2. Using Advanced Reactor Options。
从Maven 2.1版本开始,有新的Maven命令行选项,允许您操纵Maven构建多模块项目的方式。这些新选项是:
-rf,--resume-from
Resume reactor from specified project
-pl, - project
Build specified reactor projects instead of all projects
-am, - also-make
If project list is specified, also build projects required by the list
-amd, - also-make-dependents
If project list is specified, also build projects that depend on projects on the list
仅从根目录构建module-b:
$ mvn --projects module-b install