5

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

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

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

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

谢谢

4

2 回答 2

5

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

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

接着

mvn -DprofileIdEnabled=true
于 2012-07-23T23:49:58.613 回答
3

查看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, --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 模块-b 安装

于 2012-07-24T04:59:50.103 回答