【问题标题】:How to activate a Maven Profile for a specific module in a mutli-module project如何为多模块项目中的特定模块激活 Maven 配置文件
【发布时间】:2012-07-22 03:54:54
【问题描述】:

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

如果我们激活我们的自定义“自动部署”配置文件,每个模块都可以作为构建的一部分部署到正在运行的服务器,该配置文件在每个模块中明确定义,因为每个模块的部署方式/内容略有不同模块。

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

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

谢谢

【问题讨论】:

    标签: maven build project multi-module


    【解决方案1】:

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

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

    然后

    mvn -DprofileIdEnabled=true
    

    【讨论】:

      【解决方案2】:

      查看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, --projects

         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
      

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

      $ mvn --projects 模块-b 安装

      【讨论】:

      • 如果我想构建所有项目,但只是auto-deploy 其中之一怎么办?或者在我的情况下,跳过所有测试但一个,仍然构建它们?
      猜你喜欢
      • 2012-04-16
      • 1970-01-01
      • 2011-04-01
      • 1970-01-01
      • 2017-09-21
      • 1970-01-01
      • 2011-09-03
      • 2019-04-18
      • 1970-01-01
      相关资源
      最近更新 更多