Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
詹金斯:我应该为我的构建使用不同的本地maven存储库吗?_Maven_Jenkins_Continuous Integration - Fatal编程技术网

詹金斯:我应该为我的构建使用不同的本地maven存储库吗?

詹金斯:我应该为我的构建使用不同的本地maven存储库吗?,maven,jenkins,continuous-integration,Maven,Jenkins,Continuous Integration,我有一个Jenkins实例运行多个微服务和库的构建 目前,我的构建配置为所有作业都使用不同的本地存储库位置$WORKSPACE/.m2/repository 这很好,因为构建之间没有相互影响的方式,但是,构建显然要长得多,因为它们每次都需要下载所有依赖项 你认为什么是更好的解决方案?我应该保持当前配置,还是对所有作业使用相同的本地回购位置足够安全 有没有办法确保构建不会相互影响,即使本地回购协议相同 我想到的是,我可以配置项目,以便每次都更新所有快照。这够了吗?如何从我的设置.xml执行此操作

我有一个Jenkins实例运行多个微服务和库的构建

目前,我的构建配置为所有作业都使用不同的本地存储库位置
$WORKSPACE/.m2/repository

这很好,因为构建之间没有相互影响的方式,但是,构建显然要长得多,因为它们每次都需要下载所有依赖项

你认为什么是更好的解决方案?我应该保持当前配置,还是对所有作业使用相同的本地回购位置足够安全

有没有办法确保构建不会相互影响,即使本地回购协议相同

我想到的是,我可以配置项目,以便每次都更新所有快照。这够了吗?如何从我的
设置.xml
执行此操作


我在评论中提出了一些问题,我认为在这里回答这些问题更好,因此:

为什么每次生成之前都要删除存储库文件夹

因为回购在jenkins作业文件夹中(当前)。我清理作业文件夹,因为我有时需要在构建期间修改pom。(为发布更改版本)

你们有很多分支机构吗?您是否使用存储库管理器

是的,我喜欢

你有多少个jenkins节点

目前只有一个,但将来可能会改变

如何在Jenkins(意思是)的基础上构建您在Jenkins中使用的确切maven执行命令


我使用了
mvn clean deploy
,还有一些附加属性

我当前的解决方案是在jenkins home之外创建一个目录,
/maven/.m2/repository/
。但这不是本地存储库本身


实际的存储库是:
/maven/.m2/repository/${env.JOB_NAME}
。这样,我可以为每个作业获得不同的repo,但在为作业删除工作区时不会将其删除。

无论您做什么,请确保一次不会有多个生成使用一个本地存储库。本地存储库对于并发使用不安全。如果两个生成尝试更新同一快照,则很容易破坏元数据。

是否在每个生成之前/之后删除
.repository
?是的,我每次都从一个干净的开始。也许这是我可以提高绩效的另一个方向。你为什么这么做?如何在Jenkins(意思是)的基础上构建您在Jenkins中使用的确切maven执行命令?你们有很多分支机构吗?另一件事是:您是否使用存储库管理器?你有多少个jenkins节点?我在编辑中回答了你的问题基于这种情况,我只会使用位于jenkins中每个工作区的存储库。但我不会在构建之前/之后删除每个构建的空间。此外,我想知道你的建设需要多少时间?您有多少个模块/测试/等?