如何在共享的jenkins服务器上管理maven settings.xml



我有一个Jenkins集群,由几个团队共享,我可以配置构建作业,但是我不能轻易地改变Jenkins配置本身。

有一个中央的"nexus pro"maven仓库管理器,但是在这个非常大的跨国公司里,每个团队/小组都有自己的仓库,发布到仓库需要用户名/密码组合。

这意味着我必须用maven settings.xml配置Jenkins服务器,该xml是我正在工作的团队所独有的,而不会弄乱Jenkins集群其他用户的maven配置。

Git是源代码控制库。

  1. 在共享Jenkins集群上,我如何配置一个maven settings.xml,这是一组构建作业或单个作业所独有的?处理这种情况的最佳实践是什么?

我建议使用配置文件插件,它提供了一个UI来编辑一个或多个Maven设置文件。

这些设置文件可以使用"-s"选项传递到Maven构建中。

您可以在Maven高级选项部分为每个作业指定一个特定的settings .xml路径

我们使用Puppet管理所有构建节点。它提供了比settings.xml更好的控制。强烈推荐

Puppet是IT自动化软件,它可以帮助系统管理员在其整个生命周期中管理基础设施,从供应和配置到补丁管理和遵从性。使用Puppet,您可以轻松地自动执行重复性任务,快速部署关键应用程序,并主动管理更改,从10台服务器扩展到1000台服务器,无论是在本地还是在云中。

如果您的公司正在使用Nexus Pro(正如您已经提到的),那么您唯一的Maven settings.xml可以存储在那里,并在构建时使用Nexus - Maven -plugin进行检索,如下所述:http://books.sonatype.com/nexus-book/reference/maven-settings.html

结合基于令牌的访问(同样,Nexus Pro也这样做),您不需要在settings.xml中不安全地存储密码(参见https://books.sonatype.com/nexus-book/reference/usertoken.html)

我在使用jenkins构建项目时遇到了类似的问题,因为maven中央存储库中没有ojdbc jar。

当我将ojdbc jar放在WEB-INF/lib文件夹中并在pom.xml中删除maven依赖时,它工作了。

使用ElasticBox Jenkins插件可以自动配置maven执行器。

您只需要为Maven从服务器创建一个盒子,定义所有的自定义变量和文件,并选择您首选的云提供商来部署它。

ElasticBox还为您提供了仅在需要时创建新slave的灵活性,并在指定的保留时间后自动销毁它们。

下面是如何连接你的Jenkins和ElasticBox:

https://elasticbox.com/documentation/integrate-with-jenkins/jenkins-elasticbox-setup/jenkins-configure-plugin

下面是如何使用ElasticBox自动创建Jenkins slave:

https://elasticbox.com/documentation/integrate-with-jenkins/jenkins-elasticbox-slaves/

有一篇关于如何使用ElasticBox Jenkins插件轻松构建和部署GitHub拉取请求的博客文章:

https://elasticbox.com/blog/github-pull-requests-jenkinsplugin/

最新更新