我想知道是否有人有Maven构建的并行执行经验。我知道Jenkins中有一个选项可以使用Maven构建的本地存储库,我也从2007年http://jira.codehaus.org/browse/MNG-2802发现了这个问题。
有没有办法挂钩Maven下载来进行基本的文件系统锁定?或者可以用不同的东西(什么?)来完全取代它?
谢谢。
我很惊讶2011年这样的着名工具没有考虑并行执行的可能性。
答案 0 :(得分:1)
在我的CI服务器上,我将每个项目配置为拥有自己的本地存储库。另外,我安排定期工作来清除这些文件。为什么?
我的理由是,我希望将每个项目相互隔离,并鼓励从我的基于Nexus的Maven存储库中定期进行“干净”构建。
不能解决您的有效问题,但也许可以解释为什么我不认为这是一个很大的问题。
答案 1 :(得分:0)
实际上,如果您构建两个使用另一个产生的工件(下游项目)的项目,或者生成相同的工件(构建不同的配置),这一点非常重要。在这些情况下,您可能会考虑阻止下游构建,直到第一个构建完成或管道化配置构建,以便它可以获取正在进行的构建。
虽然锁定有助于避免由修改的JAR文件引起的错误,但是在CI系统中更好地锁定整个构建的上下文。
正如Mark指出的那样,有很好的理由将本地存储库分开,Maven可以通过拥有一个共享的发布缓存但是每个项目的快照缓存来更好地支持这一点 - 但是现在拥有单独的本地存储库是最好的这样做的方法。