我处于一种情况,我有一个Build Server框,它将执行所有持续集成并管理我们的maven存储库。该框的工作原理如下:
我想摆脱Apache服务器并在同一个盒子上运行Nexus来管理和托管存储库,但是我有以下问题/想法:
Nexus和Jenkins在同一个盒子上,这是否意味着我必须管理两个存储库,一个是maven将工件安装到本地存储库,另一个是maven将工件部署到nexus?是否有可能让Nexus管理“mvn install”存储库?如何确保我们不会非常快速地耗尽服务器上的磁盘空间?
由于
作为对评论的回复添加:谢谢两位,我想我只会将Jenkins作业和发布插件目标设置为mvn package deploy:deploy以便跳过安装阶段,这样,工件直接从目标开始目录到Nexus。但是我想Jenkins的工作将需要一个本地存储库,从中可以使用依赖项,这些依赖项将在构建期间从Nexus复制到maven本地存储库,但我不确定是否可以避免这种情况。
答案 0 :(得分:0)
这些语义在lifecycle中定义并映射到不同的插件。他们的实现是不同的。
您不必管理本地存储库。实际上,对于某些(如果不是大多数)作业,您甚至可能希望将其定义为本地化到作业(使用“使用私有Maven存储库”选项)而不是运行作业的用户,尤其是您计划将nexus用于存储库。
您必须更改作业才能使用mvn deploy。
答案 1 :(得分:0)
如何确保我们的服务器上的磁盘空间不足 一直很快?
配置Jenkins / Nexus。 Discard old builds
和disable automatic artifact archiving
。这两个设置都可以在Jenkins作业配置中找到。您也可以使用Scheduling Tasks
从Nexus自动删除旧工件。
在专用服务器上使用Jenkins / Nexus时,无需将工件安装到本地maven存储库中。