可自动拓展页面的java项目_Jenkins 可扩展持续集成引擎全流程(自动构建-自动部署)...

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

官方网址:https://jenkins.io/zh/

下载地址:https://jenkins.io/download/

下载类型:.war

fe3d64160deca46dc76014bde8123ece.png

一、安装

1.Windows 服务安装(下载上图中的Windows版本)

直接安装即可。

2.Tomcat 部署安装(Tomcat + .war)

此处省略,只需安装Java JDK和Tomcat后,将下载地war包放入webapps下启动tomcat即可访问。

3.cmd java命令安装(cmd + .war)

这种方式相对来说比较通用,建议大家使用这种方式来安装,打开cmd,进入到.war包所在目录,执行以下命令。(很多人第一次启动可能会报错ssl等,这个后面需要修改协议,可以忽略,只要启动显示running就算是成功的了)

java -jar jenkins.war --httpPort=12020

启动完成后,使用浏览器打开地址。

http://127.0.0.1:12020

75559aab877035ce78aebd06cde640c4.png

输入默认密码进入,已经提示从以下地址进入并查看出密码。

C:\Users\WENC\.jenkins\secrets\initialAdminPassword

进入到该界面,显示已经离线,我们先解决这个问题。

3dcdd0bfd71162e8fbb3dde9ca47a20e.png

打开 http://127.0.0.1:12020/pluginManager/advanced,修改Update Site。

https://updates.jenkins.io/update-center.json

修改为

http://updates.jenkins.io/update-center.json

cd91413b762bebfdeac85096b2ce67ec.png

重启Jenkins,之前报错的ssl问题会消失。

792439686e5b8e5cbb169a6ad06b5ae9.png

进入Jenkins页面。

313f78591dd33bdc6e20beb20332be8b.png

安装推荐的插件,后续有其他需要再另行安装其他插件即可,然后进入创建管理员用户更界面。

00c9e4b46b0980ec5d7987bb0f5d04ce.png

保存并完成后,可能会出现空白页面,重启一下Jenkins就好了。

f6c738e4c972f87367b96d334c290e53.png

二、更改Jenkins主目录位置(cmd + .war方式)

Jenkins采用 cmd + .war方式安装,默认生成的主目录位置为:C:\Users\WENC\.jenkins(系统管理-主目录,可见),现将主目录位置移动到D:\Jenkins。

到环境变量配置中,新增系统变量:JENKINS_HOME,值:D:\Jenkins。

然后重启Jenkins,即可观察到位置是否被改变。(将cmd关闭后,再重新打开cmd,启动Jenkins)

ab8b8eb550d2629de2ae4afbeaeab22e.png

更改目录后,第一次启动会报错,因为没有之前已经安装过的插件信息等,然后我们再从原安装目录将文件全部拷贝覆盖到现在的目录即可。

C:\Users\WENC\.jenkins

拷贝并覆盖到

D:\Jenkins

再次重新启动即可。

6b21e6283f98b3b83f0eff6bd11d2d0b.png

三、Jenkins配置

系统设置-全局工具配置,配置JDK、Maven、Git等。

818b53d8c6332208d96c4385237e54ca.png

3.1 Maven Integration 插件

介绍:攒略。

安装Maven Integration 插件,避免新建任务时,无Maven项目选项。

f80298a6c4498af8b8d4e4e7ab0a823e.png

3.2 Jenkins关闭、重启、重新加载

关闭

http://127.0.0.1:12020/exit

重启

http://127.0.0.1:12020/restart

重新加载配置信息

http://127.0.0.1:12020/reload

四、构建项目

构建Maven 项目为例。

600a698c7dc632583b5f5e5c53baceb6.png

4.1 通用设置

eef9d035406c4e792c101300b5ff21a3.png

4.2 源码管理

SVN为例:项目svn地址设置,账号设置。

da07b3266e4374aab71d00c7ad608e37.png

4.3 构建触发器

”构建触发器”是一个持续集成的触发器插件,可以根据已经完成构建的结果,触发新Job或者传递参数。默认的选项是Build whenever a SNAPSHOT dependency is built,意思是依赖于快照的构建,意思是依赖于快照的构建,当代码有更新时就构建项目。

Build periodically和Poll SCM可以设置定时自动构建。两者区别如下:

Poll SCM:定时,检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。

Build periodically:定时,进行项目构建(不关心源码是否发生变化)。

栗子:日程表表达方式,键入以下命令,以每分钟为例。

#每分钟

* * * * *

#每小时

H * * * *

#每12小时

H */12 * * *

#更多规则解释

MINUTE Minutes within the hour (0–59)

HOUR The hour of the day (0–23)

DOM The day of the month (1–31)

MONTH The month (1–12)

DOW The day of the week (0–7) where 0 and 7 are Sunday.

指定顺序为MINUTE HOUR DOM MONTH DOW

在某个域指定多个值的规则是:

* specifies all valid values

M-N specifies a range of values

M-N/X or */X steps by intervals of X through the specified range or whole valid range

A,B,...,Z enumerates multiple values

如果要定期执行任务,必须提供H (for "hash")标识。

比如0 0 * * *会在同一时间执行所有任务,而使用H H * * *也会在每天执行一次任务,但是并不是同一时间,这样就可以节省很多资源。

H还可以用于范围:H H(0-7) * * * 标识在每天12:00-7:59之间的某个时间执行任务。

H * * * * 代表每个小时执行一次。

H/15 * * * *每15分钟执行一次。

4.4 Pre Steps 构建步骤之前

调用顶层 Maven 目标,这里我们可以选择在构建项目之前使用maven命令对项目进行操作,如:clean 、complier、package 、install。

a7d18b2bb042386e3217f4ac13754fd8.png

4.5 Build 构建

Root POM(项目pom.xml所在位置):项目名称/pom.xml 或 pom.xml

Goals and options:略

025b4118c0e60086dfbf6b3d208eb108.png

4.6 Post Steps(未测试)

在maven项目创建完成后,我们还需要实现每次构建完成,将war发布到目标主机上,以实现自动发布。我们通过添加shell实现自动发布。

找到Post steps下有个Execute shell:

【注意】:Jenkins在执行该shell脚本的时候是以jenkins这个用户身份去执行。某些场景下请注意环境变量PATH。

五、测试构建

到达这一步,我们可以先尝试构建项目,回到Jenkins主界面,点击对应项目构建,构建完成后,可以看到项目构建记录。

8baf6e3ee9be3ae874d2afa50a8aa362.png

点击链接,可以看到每一次构建的情况,蓝色表示成功,红色表示失败。

f96834a99f586f3fbdbd6e249bf11d79.png

点击控制台输出,可以查看到构建信息,如果报错自行寻找原因。

c16417246c00b7c09590cbb5f7b394e6.png

六、自动部署到Tomcat服务器(Deploy To Container Plugin插件)

自动部署.war包到Tomcat服务器下,这里Tomcat服务器在本地Windows系统上为例,Linux系统不同,后续添加。

首先,配置Tomcat服务器,打开Tomcat目录,conf -> tomcat-users.xml 文件,在tomcat-users标签中间空白处添加以下代码。

username 和 password 设置为 admin,Jenkins里面需要配置账号信息才有权限登陆Tomcat操作。

接着回到Jenkins,到插件中心安装Deploy To Container Plugin插件。

76433a5231288ee458b7ebe26185bbc5.png

在“构建后操作”下,添加“Deploy war/ear to a container”。

WAR/EAR files:配置为上一个操作步骤,生成.war打包文件的位置,我这里是生成在根目录 -> target 目录下。

Context path:配置访问路径名,如果不带项目名,则填入"\"即可。

Containers:容器类型,选择对应的服务器类型,有GlassFish、JBoss、Tomcat,3种容器。

Containers - Credentials:容器的登陆账号,上一步我们已经将管理员账号密码写入到conf -> tomcat-users.xml文件种,即admin。

Containers - Tomcat URL:容器访问路径,即通过该链接和提供的账号密码,Jenkins可以找到容器位置并进行部署,因此在界面上没有看到需要填写容器物理路径的地方,这里我设置的tomcat端口即18080。

098773afffaca205d2ea955ffc4bb825.png

七、测试部署

先将Tomcat服务器打开。

点击开始构建项目,则完成了Maven项目从构建 -> 自动发布的全流程。

我们尝试在编辑器中完成代码更新,提交到svn服务器上,Jenkins根据我设置的每分钟检查一次源代码是否变更过,如变更则进行构建,然后自动更新部署到Tomcat服务器上。

c6dc39f388056d36d5e8aa2c42b79faa.png

八、邮件通知

Jenkins中带有邮件通知服务,即项目在持续化构建过程中,我们可以将构建等信息或问题通过Email的方式发送到指定的邮箱中,达到一个通知的效果,以下列出2种邮件服务,第一种是Jenkins中已经自带的简单邮件服务,第二种是Email Extension Plugin插件复杂邮件服务。

首先,我们先对系统的全局变量做一个设置,系统管理-系统设置-Jenkins Location,填入系统管理员邮件地址,收件人。

Jenkins URL:Jenkins访问地址。

系统管理员邮件地址:邮件接收者的邮箱。

f9c544be53a6987ee5bcefa3c411f6c1.png

8.1 开启邮箱 SMTP 服务

一般我们都会使用第三方的邮箱来完成,比如:网易、QQ邮箱等,因此我们需要在第三方邮箱的设置中先开启自己的SMTP服务,这里我们使用QQ邮箱来做栗子。

进入QQ邮箱,设置 -> 账号 -> 账号安全,可以看到服务,开启POP3/SMTP和IMAP/SMTP服务。

点击“生成授权码”,其它邮箱没有进行测试,但是QQ这里必须点击”生成授权码“,因为这个就相当于是”邮箱密码“用于邮件服务当中。

注意:如果在测试过程中(8.2中),Test configuration报错 535,一般情况是这个错误导致的,因为设置的发件人的密码并不是你QQ密码,而是授权码。

2faea44721b33b1a49e715a8aa57f4a0.png

8.2 自带简单邮件服务

Jenkins中自带的简单邮件服务,系统管理-系统设置-邮件通知,这里设置的是”发件人“账号信息。

SMTP服务器:登陆第三方邮箱中进行查询,或者度娘。QQ邮箱:smtp.qq.com

用户默认邮件后缀:@qq.com

使用SMTP认证:勾选

用户名:QQ邮箱

密码:授权码(QQ邮箱是使用授权码,其它邮箱自行查找)

使用SSL协议、SMTP端口:勾选状态,默认465端口;不勾选,默认25端口;如有其他要求,请自行设置

通过发送测试邮件测试配置:勾选

Test e-mail recipient:测试接收人,测试时,发件人和收件人可以设置为一致,等于自己给自己发邮件。

8bb9095a8f9adfd7d877feb802be88e5.png

点击Test configuration,进行测试,Email was successfully sent 表示已经成功发送邮件,自行到邮箱查看,如果出现535,则可能是上一步发件人不是使用授权码导致。(QQ邮箱)

e960835cfb8791653735b7beef4b1bae.png

8.3 在项目中使用简单邮件服务

项目 -> 配置 -> Post Steps -> 添加”执行shell“,这里输入一个错误的命令直接强制使构建失败。

命令:ech "fail"

构建设置:

勾选”E-mail Notification“,填写”Recipients“:邮件接收人。

默认勾选”Send e-mail for every unstable build“,每当构建失败时发送邮件。

默认勾选”Send e-mail for each failed module“,每一个失败模块发送邮件。

注意:该简单邮件服务只提供了构建失败时的状况,没有提供其他阶段的通知,比如:构建成功时,构建某个阶段时等等,同时也不能发送html格式的反馈信息。

389e88633d8bc9a3dfec6d95e91443bc.png

设置完毕,点击开始构建项目,在控制台可以看到构建失败的信息。

e557eb516903d6512081ade2361b7e33.png

邮箱里的构建失败邮件信息。

32377ebcf59e66cf689719f41bdd9925.png

8.4 复杂邮件服务 Email Extension Plugin插件

首先到插件中安装该插件(Email Extension Plugin),该插件可以先配置全局统一配置信息,项目中默认使用全局配置信息,然后也可以针对每一个项目做不同的配置调整。

全局配置信息,系统管理-系统配置-Extended E-mail Notification,这里设置的是”发件人“账号信息。前6项配置和简单邮件配置一致即可。

SMTP server:登陆第三方邮箱中进行查询,或者度娘。QQ邮箱:smtp.qq.com

Default user E-mail suffix:@qq.com或无

Use SMTP Authentication:勾选

User Name:QQ邮箱

Password:授权码(QQ邮箱是使用授权码,其它邮箱自行查找)

Use SSL、SMTP port:勾选状态,默认465端口;不勾选,默认25端口;如有其他要求,请自行设置

Default Content Type:HTML(text/html),使用html格式,默认的简单邮件服务是不允许使用的

Default Recipients:默认邮件接收人

Default Subject:默认主题

Default Content:默认内容

举个网上的栗子,Default Subject内容如下:

构建通知:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS!

Default Content内容如下:

构建通知:$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:


项目名称:$PROJECT_NAME


构建编号:$BUILD_NUMBER


svn版本号:${SVN_REVISION}


构建状态:$BUILD_STATUS


触发原因:${CAUSE}


构建日志地址:${BUILD_URL}console


构建地址:$BUILD_URL


变更集:${JELLY_SCRIPT,template="html"}


Check console output at $BUILD_URL to view the results.

ad7d074de300a8d32b901f24a217850e.png

8.5 在项目中使用复杂邮件服务

来到项目配置 -> 最后一步”添加构建后操作步骤“ -> Editable Email Notification,在这里已经配置好全局的统一配置信息,重要选项内已经使用”$DEFAULT_“打头的内部表达式来定义,其余的选配需要自行设置,针对不同的构建项目,这里的配置信息可以做不同的调整,不同的项目负责人接收各自项目的信息,否则将使用全局统一配置项。

Disable Extended Email Publisher:勾选后,邮件就不发送。

Project Recipient List:收件人地址;多个收件人邮件地址用逗号进行分割;想使用全局默认配置的话,可以使用$DEFAULT_RECIPIENTS

Project Reply-To List:允许回复人的地址;想使用系统设置中的默认值的话,可以使用$DEFAULT_REPLYTO

Attach Build Log:发送的邮件是否包含日志

Triggers:修改Triggers设置,移除Developers。这里设置了两种状态下发送邮件,Failure - Any 和 Success,全部使用Recipient List,如果上面使用默认配置,则会去寻找全局统一配置信息。

d15ffd2a7a2579ba979845bb61aa43e9.png

重新构建,进行测试,我们在控制台可以看到邮件发送成功的信息。

8d4fa3c8288546b2295e3b2bb154fed2.png

邮箱里会收到构建报告。

85563576bfede12d97b43ee938705901.png

九、待定插件更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值