【发布时间】:2020-11-08 17:30:45
【问题描述】:
我有一个 Jenkins 实例运行多个微服务和库的构建。
目前,我将构建配置为所有作业都使用不同的本地存储库位置$WORKSPACE/.m2/repository。
这很好,因为构建无法相互影响,但是,构建显然会更长,因为它们每次都需要下载所有依赖项。
您认为更好的解决方案是什么?我应该保留当前配置,还是对所有作业使用相同的本地 repo 位置是否足够安全?
有没有办法确保构建不会相互影响,即使本地 repo 相同?
我想到的是我可以配置项目,以便每次都更新所有 SNAPSHOT。这够了吗?我怎样才能通过我的settings.xml 做到这一点?
我在 cmets 中遇到了一些问题,我认为在这里回答比较好,所以:
为什么我要在每次构建之前删除我的存储库文件夹?
因为 repo 位于 jenkins 工作文件夹中(当前)。我清理了作业文件夹,因为有时我需要在构建过程中修改 pom。 (为发布更改版本)。
你有很多分店吗?您使用存储库管理器吗?
是的,我愿意。
你有多少个jenkins节点?
目前只有一个,但将来可能会改变。
你如何在 Jenkins 上构建(意思是)你在 Jenkins 中使用了哪个确切的 maven 执行命令?
我使用mvn clean deploy,还有一些附加属性
【问题讨论】:
-
您是否在每次构建之前/之后删除
.repository? -
是的,我每次都从头开始。也许这是我可以提高性能的另一个方向
-
你为什么要这样做?你如何在 Jenkins 上构建(意思)你在 Jenkins 中使用了哪个确切的 maven 执行命令?你有很多分支吗?另一件事是:您使用存储库管理器吗?你有多少个jenkins节点?
-
我在编辑中回答了你的问题
-
基于这种情况,我只会使用位于 Jenkins 中每个工作区的存储库。但是我不会在构建之前/之后为每个构建删除该空间。此外,我想知道您的构建需要多少时间?你有多少模块/测试/等?
标签: maven jenkins continuous-integration