maven - 在 Jenkins 主机上运行 Maven 时出现并发问题
问题描述
我经常在目录 /home/jenkins/.m2/.../some-project/ 中的 Jenkins 主机上遭受损坏的 maven-metadata-local.xml 文件
例如,添加到 maven-metadata-local.xml 文件末尾的额外行如下:
...
</versioning>
</metadata>
astUpdated>
</versioning>
</metadata>
我是否遇到并发问题?就像这里描述的一样(创建于 2007 年,但仍未解决):https ://issues.apache.org/jira/browse/MNG-2802
我能做些什么来缓解这个问题?
解决方案
您不能同时为两个构建使用相同的本地存储库,否则您将面临数据不一致的风险。
我们通过每个管道使用一个本地存储库“解决”了这个问题,即我们构建的每个 Java 项目都有自己的本地存储库。
这当然是对空间的巨大浪费(尤其是因为有 1800 个 Java 项目,所以有 1800 个本地存储库),但这是一个简单的解决方法。但是,可以使用本地存储库池。构建可以在开始时锁定其中一个,并在结束时释放它。但是您可能需要自己编写该逻辑。
推荐阅读
- java - 使用 Prim 和堆计算 MST 的总重量
- laravel - 如何从 laravel 中具有父 ID 的集合创建嵌套数组?
- c++ - UI 自动化示例错误:LNK2001 无法解析的外部符号 _CLSID_AccPropServices
- c# - 为什么 Visual Studio 在 Razor (.cshtml/.razor) 中突出显示双花括号?
- javascript - 当图像大小不同时,如何在 carasoul 中制作响应式图像?
- javascript - 来自javascript的二维码阅读器
- java - 将对象投射到 ? 类型作为 List 的参数
- python - pytest-bdd 是否支持标记示例并通过 pytest -k tag_name 使用标记调用测试
- angular - 错误:fakeAsync() 测试助手需要 zone-testing.js,但找不到。使用 serenityJS+Jasmine 在 Angular webapp 上运行测试时
- c# - Azure IoT 中心版本 1.37 CreateFromConnectionString NotImplementedException