如何为多模块项目中的特定模块激活Maven配置文件

时间:2012-07-23 21:10:18

标签: maven build project multi-module

我们有一个多模块Maven项目,由父POM和5个或更多模块组成。

如果我们激活我们的自定义“自动部署”配置文件,每个模块都可以部署到正在运行的服务器上,这个配置文件在每个模块中明确定义,因为每个模块的部署方式和部署方式略有不同。模块。

当从父POM构建时,如果我激活“自动部署”配置文件,Maven将最终部署所有模块,这几乎不是我们需要做的(基于我们的开发过程等)。但我们确实希望从根构建,因为可以在多个模块之间进行更改,并且某些模块之间存在依赖关系。

从父POM构建时,是否有办法为其中一个模块激活我们的自定义“自动部署”配置文件,但不是全部?

由于

2 个答案:

答案 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