“破碎的”本地存储库 - 我怎么能注意到?我怎么能阻止它发生?

时间:2017-07-25 09:28:57

标签: java maven

我们的构建服务器的本地存储库包含SNAPSHOT版本工件的不一致数据。这导致构建服务器加载旧的带时间戳的版本,即使为-u设置了mvn也是如此。

这种行为让我担心。同事们抱怨说你“不能信任Maven构建”。我需要为此做些什么。

当然,我可以为每个构建重新加载每个工件(基本上忽略本地存储库)但这将花费不必要的长时间。

有没有办法确定本地存储库是否“已损坏”?

(请不要告诉我们在构建服务器上使用SNAPSHOTs - 我们需要至少再做一年。)

编辑:

  • 我们的构建服务器是Quickbuild,但它不应该太重要,因为它只是检查代码然后调用Maven。
  • 不一致的形式是以-SNAPSHOT(pom,jar等)结尾的文件的年龄不同。它应该保留一份副本,但我没有,所以我不能提供更多细节。
  • 本地存储库是为大约2000个独立Java项目的所有构建共享的。

1 个答案:

答案 0 :(得分:1)

作为评论中讨论的摘要:您似乎有2000个单独的构建,从同一个本地maven存储库读取并安装到构建服务器中的目录。这只是要求并发问题,因为本地maven存储库只是一个目录结构,缺乏处理目录结构的并发更新的任何机制。

通常所做的就是构建特定于作业的本地存储库以及处理共享数据的单独存储库管理器。所有创建的工件都将上载到存储库管理器,后者也处理并发请求。如果我是你,那就是我的目标。

如果您坚持要进行本地文件级别的工件共享,那么这些工件至少应该只是从repo管理器获取的工件,而不是本地生成的快照工件,因为这会导致并发问题。