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

时间:2013-05-22 07:07:02

标签: maven jenkins nexus

我有一个由几个团队共享的Jenkins群集,我可以配置构建作业,但是我无法轻易地对Jenkins配置本身进行更改。

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

这意味着我必须使用maven settings.xml配置Jenkins服务器,这对我正在使用的团队来说是唯一的,而不会弄乱Jenkins群集的其他用户的maven配置。

Git是源代码控制存储库。

  1. 在共享的Jenkins群集上,如何配置对一组构建作业或单个作业唯一的maven settings.xml?处理此类情况的最佳做法是什么?

6 个答案:

答案 0 :(得分:18)

我建议使用configuration file plugin,提供用于编辑一个或多个Maven设置文件的用户界面。

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

答案 1 :(得分:2)

您可以在Maven Advanced Options部分中为每个作业指定一个特定的seetings.xml路径

答案 2 :(得分:2)

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

Puppet是一款IT自动化软件,可帮助系统管理员在整个生命周期内管理基础架构,从配置和配置到补丁管理和合规性。使用Puppet,您可以轻松实现重复性任务的自动化,快速部署关键应用程序,主动管理变更,从10台服务器扩展到1000台,内部部署或云端。

答案 3 :(得分:1)

如果您的公司正在使用Nexus Pro(正如您已经提到过的那样),那么您可以在那里存储您独特的Maven settings.xml,并在构建时使用nexus-maven-plugin检索,如下所述:{{3 }}

结合基于令牌的访问(同样,Nexus Pro执行此操作),您不需要在settings.xml中不安全地存储密码(请参阅http://books.sonatype.com/nexus-book/reference/maven-settings.html

答案 4 :(得分:1)

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

当我将ojdbc罐子放在WEB-INF/lib文件夹中并删除了maven中的pom.xml依赖项时,它起作用了。

答案 5 :(得分:0)

使用ElasticBox Jenkins plugin自动配置具有特定配置的maven执行程序的好方法是使用。{/ p>

您只需要为Maven slave创建一个框,它定义了它所使用的所有自定义变量和文件,并选择您首选的云提供程序来部署它。

ElasticBox还可以灵活地在需要时创建新的奴隶,并在指定的保留时间后自动销毁它们。

以下是如何将Jenkins与ElasticBox连接:

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

以下是如何使用ElasticBox自动创建Jenkins从属设备:

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

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

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