2013-05-15 27 views
1

我认为我有一个有趣的案例。我们正在使用maven,并且因为我们必须支持我们的产品的多个版本,所以我们有时会使用1.x和2.x的构建结构。当两个1.x和2.x是建立在并行,有时我们看到Maven在CI服务器上并发构建

错误安装神器的元数据:错误安装的元数据:错误更新组存储库的元数据

从我所知道的,Maven的metadata-本地用户的回购库中的local.xml(对于工件,而不是工件的版本)正由另一个Maven进程同时写入。有没有办法允许maven同时构建这两个,但等待文件的写入锁定来更新它?

+2

此问题以[MINSTALL-54](http://jira.codehaus.org/browse/MINSTALL-54)提交,自2008年起开放。 – Joe

+0

如果您对此问题感到不安,只需创建一个补丁程序即可源项目.... – khmarbaise

回答

3

这听起来你正在使用相同的本地存储库用于所有你不知道的构建作业。 Jenkins/Hudson/CI中的要点是为每个构建作业使用本地的Maven存储库。您需要使用本地Maven存储库在Jenkins中进行配置,以避免出现这种情况。

+0

使用本地存储库仅适用于处理CI的情况。如果我是开发人员,我可能需要在大约同一时间在本地进行构建。 Maven应该正确处理这个问题。我会回复@Joe提供的说明。 –

+0

如果你真的需要同时创建两个项目,你可以使用'mvn -Dmaven.repo.local =/alternate/repo/location ...'。我知道它在Maven中不起作用,但从来没有要求在本地机器上同时创建两个项目。 – khmarbaise

+0

如果你喜欢使用simultanous访问本地存储库,只需使用[Concurrent Safe Local Repository access](http://takari.io/book/30-team-maven.html)。 – khmarbaise

相关问题