如何为多个特定模块激活一个Maven Profile

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

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

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

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

谢谢


如果每个模块都有自己的“自动部署”配置文件,并且配置文件激活将由传递给mvn命令的变量触发,那么您将能够在父模块上运行单个mvn命令,并通过简单的方式决定应该部署哪些模块声明激活变量

<profiles>
    <profile>
        <id>profileId</id>
        <activation>
            <property>
                <name>profileIdEnabled</name>
                <value>true</value>
            </property>
        </activation>
        <properties></properties>
    </profile>
</profiles>

接着

mvn -DprofileIdEnabled=true

查看Maven:完整参考 - 第6.2节。 使用高级反应堆选项。

从Maven 2.1版本开始,有一些新的Maven命令行选项可让您操作Maven将构建多模块项目的方式。 这些新选项是:

-rf,--resume-from

   Resume reactor from specified project

-pl, - 项目

   Build specified reactor projects instead of all projects

-am, - 还是make

   If project list is specified, also build projects required by the list

-amd, - 还有make-dependents

   If project list is specified, also build projects that depend on projects on the list

仅从根目录构建模块-b:

$ mvn --projects module-b安装

链接地址: http://www.djcxy.com/p/62121.html

上一篇: How to activate a Maven Profile for a specific module in a mutli

下一篇: Why can't I activate a Maven2 profile from another profile?