首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在本地构建时自动重新生成依赖项目

在本地构建时自动重新生成依赖项目
EN

Stack Overflow用户
提问于 2019-07-26 18:06:05
回答 2查看 329关注 0票数 1

我有几个Maven项目,它们共享一个共同的父级,如下所示:

代码语言:javascript
复制
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行为。这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-26 18:22:31

您可以从父项目执行以下命令(假设您在<module>...</module>中有my-子模块)

mvn clean install -pl my-child-module -am

此命令将构建项目my-child-module及其依赖项。

-pl,--项目 建造指定的反应堆项目,而不是所有项目 -am,-同时制造 如果指定了项目列表,还将生成列表-amd所需的项目,如果指定了项目列表,则还生成依赖于列表上的项目的项目。

来源

票数 1
EN

Stack Overflow用户

发布于 2019-07-26 18:18:32

您还可以创建一个完全独立于其余部分的聚合器:每个<module>指向包含pom.xml的文件夹的路径(也可以直接针对pom.xml)。

代码语言:javascript
复制
<project> 
  ...
  <modules>
    <module>project-parent</module>
    <module>project-1</module>
    <module>project-2</module>
    <module>project-3</module>
  </modules>
  ...
</project>

在此场景中,从聚合器构建将允许maven充分了解依赖关系图并按顺序进行构建。您只需注意正确更新版本,以确保其匹配(如果项目-2依赖于项目2版本-1和项目-1在版本3,那么这是行不通的)。

您不需要放置您不想要的模块,但是要注意,如果一个模块有子<module>,它也会构建它们。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57225086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档