我试图找出在CI服务器上使用maven的最佳方式,该服务器上有数百个或多或少相互关联的作业,这些作业使用了大量相同的公共库,插件等。它们都运行由同一个用户,所以默认情况下他们都在~/.m2/repository
共享相同的回购。但是,在构建服务器上这很糟糕 - 特别是当许多多模块构建需要执行mvn install
以便后构建步骤能够正常工作时, post构建可能最终使构建失败的步骤并决定不要mvn deploy
。
我认为我想要的是像eclipse如何工作,或者mutli-module项目如何与单个反应器运行一起工作 - 您可以解决所有依赖关系,而无需实际安装它们。除此之外,我想有两套本地存储库,一组用于解析所有已部署的软件包,另一组可以安装当前的构建工件,以便后构建步骤可以解决后者优先级的依赖关系。
所有这些都说,我真正感兴趣的是一个工作的解决方案,无论是否按照这些方式工作,需要进行本地安装,但不希望每个工作都有自己的完整回购(由于巨大的文件系统膨胀将导致 - 即使清除了所有旧快照,单个回购也可能超过2GB。
这似乎是一个常见问题,很多繁忙的CI服务器都会遇到,并且至少会有一个典型的解决方案,但我似乎找不到任何东西。建议?