Jenkins CI服务器和Nexus Server在同一个Box上

时间:2013-08-22 10:22:14

标签: maven jenkins nexus

我处于一种情况,我有一个Build Server框,它将执行所有持续集成并管理我们的maven存储库。该框的工作原理如下:

  1. 有一个maven存储库,它通过Apache Server托管,作为开发人员使用的URL
  2. 所有Jenkins作业(包括发布作业)都运行mvn install,以便将工件保存在这个存储库中。
  3. 我想摆脱Apache服务器并在同一个盒子上运行Nexus来管理和托管存储库,但是我有以下问题/想法:

    Nexus和Jenkins在同一个盒子上,这是否意味着我必须管理两个存储库,一个是maven将工件安装到本地存储库,另一个是maven将工件部署到nexus?是否有可能让Nexus管理“mvn install”存储库?如何确保我们不会非常快速地耗尽服务器上的磁盘空间?

    由于

    作为对评论的回复添加:谢谢两位,我想我只会将Jenkins作业和发布插件目标设置为mvn package deploy:deploy以便跳过安装阶段,这样,工件直接从目标开始目录到Nexus。但是我想Jenkins的工作将需要一个本地存储库,从中可以使用依赖项,这些依赖项将在构建期间从Nexus复制到maven本地存储库,但我不确定是否可以避免这种情况。

2 个答案:

答案 0 :(得分:0)

  • mvn install installs in local repository
  • mvn deploy installs to remote repository

这些语义在lifecycle中定义并映射到不同的插件。他们的实现是不同的。

您不必管理本地存储库。实际上,对于某些(如果不是大多数)作业,您甚至可能希望将其定义为本地化到作业(使用“使用私有Maven存储库”选项)而不是运行作业的用户,尤其是您计划将nexus用于存储库。

您必须更改作业才能使用mvn deploy。

答案 1 :(得分:0)

  

如何确保我们的服务器上的磁盘空间不足   一直很快?

配置Jenkins / Nexus。 Discard old buildsdisable automatic artifact archiving。这两个设置都可以在Jenkins作业配置中找到。您也可以使用Scheduling Tasks从Nexus自动删除旧工件。

在专用服务器上使用Jenkins / Nexus时,无需将工件安装到本地maven存储库中。