在本地构建时自动重建依赖项目
Rebuild dependent projects automatically when building locally
我有几个 Maven 项目共享一个共同的父项目如下:
project-parent
project-1
project-2: includes project-1
project-3: includes project-2
这里以project-3
的依赖关系为project-2
,project-2
的依赖关系为project-1
为例。
当我将项目推送到 git
时,Jenkins
会自动重建为依赖项目。例如,当我按下 project-3
时,project-2
将被重建。因此,project-1
也将被重建。发生这种情况是因为 Jenkins 了解依赖关系图。
然而,当我在我的开发机器上本地构建 project-3
时,我必须记住也要重建 project-2
(和 project-1
)。
我可以将 <modules>...</modules>
部分添加到父项目并简单地重建父项目。这将重建整个项目,包括所有子项目。但是,我宁愿不这样做,因为有很多项目,其中一些需要很多时间来构建。
所以我想构建一个项目(我正在处理的项目)并以某种方式自动(或方便地)重建所有相关项目,类似于 Jenkins 行为。基本上,我想在我的开发机器上本地实现 Jenkins 行为。这可能吗?
您还可以创建一个完全独立于其他聚合器的聚合器:每个 <module>
指向包含 pom.xml
的文件夹的路径(它也可以直接指向 pom.xml) .
<project>
...
<modules>
<module>project-parent</module>
<module>project-1</module>
<module>project-2</module>
<module>project-3</module>
</modules>
...
</project>
在这种情况下,从该聚合器构建将允许 Maven 充分了解您的依赖关系图并按顺序构建。您只需要注意正确更新版本以确保它匹配(如果 project-2 依赖于 project-1 的版本 2 而 project-1 在版本 3 中,那么这将不起作用)。
您不需要放置不需要的模块,但请注意,如果模块有子模块 <module>
,它也会构建它们。
您可以从您的父项目执行以下命令(假设您在 <module>...</module>
中有 my-child-module:
mvn clean install -pl my-child-module -am
此命令将构建项目 my-child-module
及其依赖项。
-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
我有几个 Maven 项目共享一个共同的父项目如下:
project-parent
project-1
project-2: includes project-1
project-3: includes project-2
这里以project-3
的依赖关系为project-2
,project-2
的依赖关系为project-1
为例。
当我将项目推送到 git
时,Jenkins
会自动重建为依赖项目。例如,当我按下 project-3
时,project-2
将被重建。因此,project-1
也将被重建。发生这种情况是因为 Jenkins 了解依赖关系图。
然而,当我在我的开发机器上本地构建 project-3
时,我必须记住也要重建 project-2
(和 project-1
)。
我可以将 <modules>...</modules>
部分添加到父项目并简单地重建父项目。这将重建整个项目,包括所有子项目。但是,我宁愿不这样做,因为有很多项目,其中一些需要很多时间来构建。
所以我想构建一个项目(我正在处理的项目)并以某种方式自动(或方便地)重建所有相关项目,类似于 Jenkins 行为。基本上,我想在我的开发机器上本地实现 Jenkins 行为。这可能吗?
您还可以创建一个完全独立于其他聚合器的聚合器:每个 <module>
指向包含 pom.xml
的文件夹的路径(它也可以直接指向 pom.xml) .
<project>
...
<modules>
<module>project-parent</module>
<module>project-1</module>
<module>project-2</module>
<module>project-3</module>
</modules>
...
</project>
在这种情况下,从该聚合器构建将允许 Maven 充分了解您的依赖关系图并按顺序构建。您只需要注意正确更新版本以确保它匹配(如果 project-2 依赖于 project-1 的版本 2 而 project-1 在版本 3 中,那么这将不起作用)。
您不需要放置不需要的模块,但请注意,如果模块有子模块 <module>
,它也会构建它们。
您可以从您的父项目执行以下命令(假设您在 <module>...</module>
中有 my-child-module:
mvn clean install -pl my-child-module -am
此命令将构建项目 my-child-module
及其依赖项。
-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