詹金斯搭建
仅一次构建二进制文件是持续部署(CD)的一个非常重要的原则。 但是,该博客将指导您从开发计算机构建二进制文件并将其部署到Nexus。 这是一个很好的开始,所有内容都本地存储在笔记本电脑中,而您只是在测试安装程序以了解其工作原理。 但是团队中拥有本地Nexus存储库的每个人都违反了“共享存储库”的目的。 这也与持续集成 (CI)相对,在持续集成 (CI)中,不同团队成员提交的源代码签出并构建在CI服务器上。 CI是持续部署的基本要求。 那你如何设置呢?
您使用CI服务器将二进制文件推送到Nexus。
开源和商业范围内都有大量CI服务器。 詹金斯(Jenkins),特拉维斯(Travis),CruiseControl和Go是开源领域中最受欢迎的一些。 它们都有商业版本。 Bamboo和AnthillPro是几个流行的仅限商业用途的产品。 本博客将使用最简单,最受欢迎和最容易使用的Jenkins CI服务器 。
总体流程如图所示,并在此之后进行说明。
流程是:
- 开发人员将代码从防火墙内部推送到GitHub
- Jenkins正在GitHub上进行代码更新
- 构建二进制文件并将工件推送到Nexus(在防火墙内部)
该技术提示将展示如何开始使用Jenkins并通过轮询GitHub工作区将二进制文件推送到Nexus。 尽管轮询效率低下 ,但这可能是唯一的选择,并且可能是简化的选择。
在此设置中,Jenkins和Nexus都在防火墙内部设置。 这是一种更常见的情况,因为至少Nexus通常位于防火墙内部。 但是,可以在防火墙外部配置Jenkins,在这种情况下,它将能够存档工件,但不能直接推送到Nexus。 在这种情况下,需要为Jenkins和Nexus配置代理以进行通信。
让我们开始吧!
下载并启动Jenkins服务器
有关Jenkins的所有信息可以在jenkins-ci.org中找到。
- 下载最新的WAR文件 :
tools> curl -O -L http://mirrors.jenkins-ci.org/war/latest/jenkins.war % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 328 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0 100 65.3M 100 65.3M 0 0 298k 0 0:03:44 0:03:44 --:--:-- 534k
下载的总时间将根据您的网络速度而有所不同。
- 以以下身份启动Jenkins:
java -jar jenkins.war
启动和访问Jenkins提供了有关启动Jenkins和其他配置选项的更多详细信息。
- Jenkins启动后,可以在localhost:8080对其进行访问,并显示为:
安装Git插件
默认情况下,Jenkins无法处理Git工作区。 希望由于INFRA-253在以后的发行版中将解决此问题。 同时,让我们安装Git插件。
创建詹金斯工作
- 配置Maven在配置系统为这里解释
- 通过转到localhost:8080 / newJob创建一个新的Jenkins作业
- 选择“ Maven项目”,并给出如下所示的名称:
- 在“源代码管理”中,选择“ Git”,并指定存储库“ https://github.com/javaee-samples/javaee7-simple-sample”,如下所示:
- 在“构建触发器”中,选择“轮询SCM”,并将每5分钟轮询一次回购的计划指定为“ H / 5 * * * *”:
- 在“构建”中,指定“部署”目标,如下所示:
将SNAPSHOT部署到Nexus
设置完成后,只需单击或投票即可部署到Nexus。
- 单击立即构建以构建作业
- 第一个作业的控制台输出将显示如下内容:
[JENKINS] Archiving /Users/arungupta/.jenkins/jobs/Java EE 7 Simple Sample/workspace/pom.xml to org.javaee7.sample/javaee7-simple-sample/1.10-SNAPSHOT/javaee7-simple-sample-1.10-SNAPSHOT.pom [JENKINS] Archiving /Users/arungupta/.jenkins/jobs/Java EE 7 Simple Sample/workspace/target/javaee7-simple-sample-1.10-SNAPSHOT.war to org.javaee7.sample/javaee7-simple-sample/1.10-20150305.202625-8/javaee7-simple-sample-1.10-20150305.202625-8.war channel stopped Finished: SUCCESS
- Git轮询日志将显示对工作区仓库的最后一次轮询。 如果在上一个作业之后对工作区进行任何提交,则将启动一个新作业。
该博客展示了如何使用Git Polling将二进制文件从Jenkins推送到Nexus。
请享用!
翻译自: https://www.javacodegeeks.com/2015/03/jenkins-to-nexus-with-git-polling.html
詹金斯搭建