Maven从父级构建特定的子级

Maven从父级构建特定的子级,maven,Maven,我们是否可以从Maven中的父Pom构建特定的子级。可能会使用一个提到要包含的模块名称的文件。您可以使用Maven概要文件来实现这一点 <project> ... <profiles> <profile> <id>build1</id> <activation> <property>build1</pro

我们是否可以从Maven中的父Pom构建特定的子级。可能会使用一个提到要包含的模块名称的文件。

您可以使用Maven概要文件来实现这一点

<project>
...
    <profiles>
        <profile>
            <id>build1</id>
            <activation>
                <property>build1</property>
            </activation>
            <modules>
                <module>module1</module>
            </modules>
        </profile>

        <profile>
            <id>build2</id>
            <activation>
                <file>
                    <exists>test2.file</exists>
                </file>
            </activation>
            <modules>
                <module>module2</module>
                <module>module3</module>
            </modules>
        </profile>
    </profiles>
</project>

...
建筑1

假设您的根项目有3个模块:
module-A
module-B
module-C

从根项目运行以下命令

  • 如果要构建
    module-C
    ,请运行:
    mvn clean install–pl module-C
  • 如果
    模块C
    依赖于
    模块A
    ,请运行:
    mvn清洁安装–pl模块-C–am
    以构建
    模块-A
    模块-C

如果您位于项目的根位置,您可以在Maven的命令行上简单地定义它,如下所示:

mvn -pl ModuleYouWouldLikeToBuild package
摘自命令行帮助:

 -pl,--projects <arg>                   Comma-delimited list of specified
                                        reactor projects to build instead
                                        of all projects. A project can be
                                        specified by [groupId]:artifactId
                                        or by its relative path.
或简短版本:

mvn -pl Module -amd
mvn -pl Module -am
如果您有触发生成的模块所使用的模块,您还可以添加:

mvn -pl Module --also-make
或简短版本:

mvn -pl Module -amd
mvn -pl Module -am

永远不要使用概要文件来包含/排除模块,最好使用命令--projects来完成这些事情。