0

我的情况是,我有一个构建服务器框,用于执行所有持续集成并管理我们的 Maven 存储库。该框的工作原理如下:

  1. 有一个通过 Apache Server 托管的 Maven 存储库,作为开发人员使用的 URL
  2. 所有 Jenkins 作业(包括发布作业)都运行 mvn install,以便将工件保存在这个存储库中。

我想摆脱 Apache 服务器并在同一个盒子上运行 Nexus 来管理和托管存储库,但是我有以下问题/想法:

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

谢谢

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

4

2 回答 2

0

我怎样才能确保我们不会一直很快耗尽服务器上的磁盘空间?

配置 Jenkins/Nexus。Discard old buildsdisable automatic artifact archiving。这两个设置都可以在 Jenkins 作业配置中找到。您也可以使用Scheduling Tasks.

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

于 2013-08-23T07:30:39.257 回答
0
  • mvn install 安装在本地存储库中
  • mvn deploy 安装到远程仓库

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

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

您将不得不更改工作以使用 mvn deploy 代替。

于 2013-08-22T20:24:47.320 回答