jenkins在java(二)环境搭建

发布时间 : 2020/10/21 14:17

jenkins是中间件吗

Jenkins

Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.

  • 重要介绍使用Jenkins来到达连续集成连续交付/连续摆设(CICD)的一些方案和选择,不涉及Jenkins的深入研究。
  • 实现CI/CD的方法有许多种,本文介绍的只是我这几天一些大略的探索,仅供大家参考。

一、安装

二、新建使命

    Jenkins摆设完成之后,接下来便要进入正题了,新建一项使命,已到达CICD的目标。

  • 首页左侧菜单按选择新建使命-》输入使命名称-》构建一个自由气势派头的软件项目-》确定(这里我已经创建过一个名为test的项目了)

  • 点击确定后进入了该项目标设置页面,先总览全部的设置项,共有六项:General,源码管理,构建触发器,构建环境,构建,构建后操作.从字面意思上不难明白。

    • General,一些通用的信息,本次不做重点;
    • 源码管理,构建的出处,git,svn,亦或是其他一些源码管理服务;
    • 构建触发器,以何种规矩主动触起源码的构建(连续构建),若该项不做任何设置,则只能手动触发;
    • 构建环境,本次也未做重要性修改;
    • 构建,以何种方法构建,maven, gradle, 亦或是其他;
    • 构建后操作,成功构建之后的一些操作,连续交付/连续摆设的操作重要放到这一块。

接下来分别较少这几项设置,以及用到的插件,已完成CI/CD的目的。

1. General

  • 本次并没有做一些重要的修改
  • 2. 源码管理

    • 只说明git的一些相关设置,其他的源码管理服务同理

    • Repository URL: git上的源码地点

      Credentials: 用户名/密码

      Branch Specifier:指定需要构建的分支

    • 上边这些做完后实在基本上已经可以了,之以是修改Advanced clone behaiours,是防备第一次构建时拉取源码超时,默认超时时间为10minutes,多次构建失败后,我把此处修改为了20minutes,假如仍旧超时,可延伸此处时间,或检察网络(点击Additional Behaviours旁边的add,选择Advanced clone behaiours)

    • Shallow clone,Shallow clone depth:浅拷贝,节流拷贝时间和磁盘空间

    3. 构建触发器

  • 实现触发构建的方法重要有定时触发、web hook触发,这些触发方法可以单独使用,也可以组合使用。
  • 3.1 定时触发

    3.2 Gitlab Hook插件

    web hook触发重要介绍gitlab hook插件,接下来我们先保存已经完成的设置,回到首页,下载所需插件。

    可选插件中搜索gitlab,勾选列表中的GitLab Plugin和Gitlab Hook Plugin, 选择直接安装。待安装完成后回到首页,点击右边方才我们创建的使命,然后点击设置回到我们之前的设置页面。

    此时发现构建触发器中多了个选项: Build when a change is pushed to GitLab. GitLab CI Service URL: http://172.16.192.142:9081/jenkins/project/test ,假如仍旧没有,实验重启Jenkins之后察看。

    图中红框上边为Gitlab Web Hook处需要添加的URL,若Jenkins设置了不容许匿名用户实行构建操作,则需要在Gitlab安全令牌处添加第二个红圈处的Secret token。

    4. 构建环境

    5. 构建

  • 构建部分重要接纳了maven构建,确保摆设Jenkins的机器已经设置好了maven环境,maven的设置不做赘述。
  • 6. 构建后操作

  • 使用maven构建打包完成后,与pom.xml同级的target目次下会天生一个war包(取决于pom.xml中的设置,对pom.xml的设置不做描述),接下来我们要做的就是将天生的war包摆设到中间件或容器中,下面重要介绍两个插件,可以根据实际环境有选择的使用,使用之前首先需要参考之前介绍的步骤下载相应插件。
  • 6.1 Deploy to Container插件

    • 到达效果:构建前需保证目的中间件正常启动,每次Jenkins构建时会把指定的war包主动摆设到指定的服务器上的context path中,假如目的服务已存在,首先undeploy目的服务,再把新的war包redeloy上去,已完成主动摆设的功能。
    • 仅支持GlassFish,JBoss,Tomcat

      增长构建后操作步骤中选择Deploy war/ear to a container

      WAR/EAR files中填上所需要摆设的程序包,支持 **/*.war 的情势

      Context path设置程序相对于中间件环境的公布路径

    1. 本文中Containers我选择了Tomcat 7.x,Credentials需要在tomcat里设置上,Tomcat URL即环境的底子地点

    2. 在tomcat中添加授权用户:修改conf/tomcat-users.xml
    3. < role rolename = "manager-script" /> < user username = "caozeal" password = "******" roles = "manager-script" /> 复制代码

      只是做上边这些设置的话,你会发现Jenkins的主动摆设仅支持第一次,已有旧版应用运行时,主动摆设会报undeploy失败,缘故是在应用运行时,tomcat会对应用的资源进行锁定,导致无法覆盖更新,这时需修改tomcat的另一项设置:conf/context.xml(详情可察看 Tomcat中antiResourceLocking和antiJARLocking的作用 )

    < Context antiJARLocking = "true" antiResourceLocking = "true" > 复制代码

    6.2 Publish Over SSH插件

      通过SSH操作目的服务,从而传输文件,实行下令已到达目标

      更机动,支持种种中间件服务器

    • 首先在系统设置中设置上所需连接的长途服务器,设置上相关设置,此中Remote Directory是访问服务器的底子路径,之后步骤能用到

    • 然后回到使命设置继续设置构建后操作一块

    • Remote directory 长途服务器文件夹,空即为默认的上边步骤设置的路径,假如此处不为空,即为相对路径

      Remove prefix 去除前置路径

      Exec command 实行脚本,此处的脚本比较简单,调用目的中间件的停止与启动

      需要留意的是实行脚本的时间有个坑,读取不到系统的环境变量,缘故是此处实行脚本的方法为non-interactive + non-login shell,不会读取/etc/profile中的设置,此处的解决方案是接纳bash实行下令,由于bash恒实行BASH_ENV中的变量,因此需要把/etc/profie赋值到BASH_ENV中,具体解决思绪参考链接

    三、其他

    • 至此已经完成了从开发职员push代码到应用构建、摆设等相关操作的基本主动流程,详细细节部分还需要继续深入研究探索
    • 遗留问题:
      • Jenkins构建的时间控制台乱码
      • 主动构建摆设的时间,Jenkins调用下令启动StartTAS.sh的时间会不停监听启动日记,直到超时才断开链接,这时间因超时而导致本次构建为黄灯,即不稳定的构建

    Jenkins 是基于Java开发的一种连续集成工具,以是,Jenkins需要Java环境。关于Java环境的设置我们在第9章使用Selenium Grid 时已经作了介绍,这里不在解说。

    安装 Tomcat


    Tomcat是针对Java的一个开源中间件服务器(容器),基于Java Web的项目需要借助Tomcat 才能运行起来。

    Tomcat官方网站: http://tomcat.apache.org/ ,打开后首页如图2.1所示

    图2.1 下载Tomcat

    单击页面左侧Tomcat 版本进行下载,对下载的压缩包进行解压,目次布局如图2.2所示。 图2.2 webapps目次用于web项目 通常将需要运行的应用放到webapps/目次下,进入bin/目次下,双击startup.bat,启动Tomcat服务器。

    安装 Jenkins


    Jenkins官方网站: https://jenkins.io/ ,打开后首页如图2.3所示。

    图2.3 下载Jenkins

    点击“Download” 链接进入下载页面,根据自己的系统选择对应的 Jenkins 版本进行下载。

    下载完成,双击进行安装,如图2.4所示。

    图2.4 双击Jenkins安装

    单击“next”按钮,我们直接将其安装到Tomcat的 webapps 目次下,如图2.5所示。 肯定要选择TomCat 的 webapps 目次。

    图2.5 选择Tomcat的webapps目次

    设置 Jenkins


    Jenkins 安装完成会主动启动 TomCat , 并通过默认browser打开: http://localhost:8080/。

    (你也可以手动进Tomcat的bin/目次下启动startup.bat ,通过browser访问: http://localhost:8080/) 如图2.6所示。

    图2.6 开如Jenkins

    根据提示,打开: D:\Java\apache-tomcat-9.0.0.M26\webapps\Jenkins\secrets\initialAdminPassword 文件察看密码。将密码填写到输入框中,点击 “Continue” 按钮。

    接下来根据提示进行安装。

    上图,运行需要一些时间,Jenkins 正在帮我们安装种种主流插件。

    最后一步设置,创建 管理员账号。

    整个 Jenkins 安装设置完成。操作界面如下。

    Jenkins 的安装比从前庞杂了些,但功能也变得更为强盛了。

    什么是连续集成

    随着软件开发庞杂度的不停进步,团队开发成员间怎样更好地协同工作以确保软件开发的!质量已经逐步成为开发過逞中不可回避的问题。尤其是近些年来,灵敏(Agile) 在软件工程范畴越来越红火,怎样能再不停变革的需求中快速顺应和保证软件的质量也显得尤其的重要。

    连续集成正是针对这一类问题的一种软件开发实践。它提倡团队开发成员必须常常集成他们的工作,甚至天天都大概发生多次集成。而每次的集成都是通过主动化的构建来验证,包括主动编译、公布和测试,从而尽快地发现集成错误,让团队可以或许更快的开发内聚的软件。

    连续集成的焦点价值在于

      连续集成中的任何一个环节都是主动完成的,无需太多的人工干涉,有利于淘汰重复過逞以节流时间、费用和工作量;

      连续集成保障了每个时间点上团队成员提交的代码是能成功集成的。换言之,任何时间点都能第一时间发现软件的集成问题,使任意时间公布可摆设的软件成为了大概;

      连续集成还能利于软件本身的发展趋势,这点在需求不明白或是频繁性变动的景象中尤其重要,连续集成的质量能帮助团队进行有用决议,同时创建团队对开发产品的信心。

    连续集成的原则

    业界广泛认同的连续集成的原则包括:

    1)需要版本控制软件保障团队成员提交的代码不会导致集成失败。常用的版本控制软件有 IBM Rational ClearCase、CVS、Subversion 等;

    2)开发职员必须实时向版本控制库中提交接码,也必须常常性地从版本控制库中更新代码到当地;

    3)需要有专门的集成服务器来实行集成构建。根据项目标详细实际,集成构建可以被软件的修改来直打仗发,也可以定时启动,如每半个小时构建一次;

    4)必须保证构建的成功。假如构建失败,修复构建過逞中的错误是优先级最高的工作。一旦修复,需要手动启动一次构建。

    连续集成系统的构成

    由此可见,一个完备的构建系统必须包括:

      一个主动构建過逞,包括主动编译、分发、摆设和测试等。

      一个代码存储库,即需要版本控制软件来保障代码的可维护性,同时作为构建過逞的素材库。

      一个连续集成服务器。本文中介绍的 Jenkins 就是一个设置简单和使用方便的连续集成服务器。

    Jenkins 简介

    Jenkins 是一个开源项目,提供了一种易于使用的连续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时 Jenkins 能实行监控集成中存在的错误,提供具体的日记文件和提示功能,还能用图表的情势形象地展示项目构建的趋势和稳定性。Jenkins前身是hudson,Jenkins 是一个可扩展的连续集成引擎。

    Jenkins特点

      易于安装-只要把jenkins.war摆设到servlet容器,不需要数据库支持。

      易于设置-全部设置都是通过其提供的web界面实现。

      集成RSS/E-mail通过RSS公布构建结果或当构建完成时通过e-mail通知。

      天生JUnit/TestNG测试陈诉。

      分布式构建支持Jenkins可以或许让多台盘算机一起构建/测试。

      文件辨认:Jenkins可以或许跟踪哪次构建天生哪些jar,哪次构建使用哪个版本的jar等。

      插件支持:支持扩展插件,你可以开发合适自己团队使用的工具。

    jenkins基本布局

    1. 开发者检入代码到源代码仓库。

    2. 系统会为每一个项目创建了一个单独的工作区。当预设或请求一次新的构建时,它将把源代码仓库的源码存放到对应的工作区。

    3. 系统会在对应的工作区内实行构建過逞。

    4. (设置假如存在)构建完成后,CI系统会在一个新的构件中实行定义的一套测试。完成后触发通知(Email,RSS等等)给相关的当事人。

    5. (设置假如存在)假如构建成功,这个构件会被打包并转移到一个摆设目的(如!应用服务器)或存储为软件仓库中的一个新版本。软件仓库可以是CI系统的一部分,也可以是一个外部的仓库,诸如一个文件服务器要么像Java.NET、 SourceForge之类的网站。

    6. 系统通常会根据请求发起相应的操作,诸如即时构建、天生陈诉,要么检索一些构建好的构件。



    本文转自pizibaidu 51CTO博客,原文链接:http://blog.51cto.com/pizibaidu/1917078,如需转载请自行联系原作者

    本文网址: http://www.directapkdownloader.com/d/2020921144912_7974_334394925/home