图文讲解jenkins的安装与配置---远程发布、自动监测代码更新

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/q383965374/article/details/41827481


什么是jenkins

Jenkins,之前叫做Hudson,是基于Java开发的一种 持续集成工具,用于监控持续重复的工作,包括:
1、持续的软件版本发布/测试项目。
2、监控一些定时调用执行的工作。


通俗的说  jenkins 可以帮助我们编译发布代码,比如我们提交到SVN后,要发布运行,就可以用过jenkins进行编译运行。

在没使用jenkins之前,我们发布版本的时候 都是手动拷贝包,启动服务器来进行发布的,但是有了jenkins之后,只要点一下按钮,它就会把你完成发布的操作。是不是很棒。


jenkins提供了很好的日志输入以及运行过程的监控


同时jenkins还能控制 定时调用代码运行。


那接着我们就了解一下jenkins怎么安装,怎么配置怎么使用。



下载

从官网http://jenkins-ci.org/下载 Java Web Archive (.war)





安装启动

已经安装了jdk,最好是jdk1.5以上。

如果还未安装jdk,window可参考

java----------jdk环境配置


jenkins不需要安装,下载好war包后可以直接启动。


第一种启动方法


切换到jenkins.war存放的目录,输入如下命令:

$ java -jar jenkins.war


然后在浏览器中(推荐用火狐)输入http://localhost:8080,localhost可以是本机的ip,也可以是计算机名。就可以打开jenkins

windows中则在cmd中输入命令

例如D盘jenkins目录为安装目录:

java -jar D:\jenkins\jenkins.war





第二种方法


是用tomcat打开

将jenkins.war文件放入tomcat下的webapps目录下,启动tomcat时,会自动在webapps目录下建立jenkins目录,所以在地址栏上需要输入的地址于上一种方法有点不一样:
http://localhost:8080/jenkins。



配置jenkins


新建用户群组及权限设置

新建用户

第一次使用jenkins当然要新建用户
在系统设置中 选择 manage credentials




权限配置

Jenkins提供了大量的插件,其中在对用户进行管理配置这块推荐使用“Role Strategy Plugin”

如下图在“系统管理”界面下,点击“管理插件”进入插件安装界面。Jenkins的插件安装管理配置都很简单,通过web直接全能搞定。











如果遇到Failed to resolve host name ftp-nyc.osuosl.org. Perhaps you need to configure HTTP proxy

则需要设置代理ip




或者手动下载后 上传插件 (推荐)









启用“Role  Strategy”
点击“系统管理”点击“系统设置”,如下图所示:“安全域”选择使用Jenkins专有用户数据库,可以在初始化的时候勾选“允许用户注册”,以后为了安全,请关闭该项;“授权策略”选择使用“Role-Based Strategy”。






点击保存后 在系统设置列表可以看见
Manage and Assign Roles



点击进入 就已经可以 进行用户的权限管理了


全局配置

单击左边的系统管理 进入系统设置




配置jdk maven  系统管理员邮件地址   (ant跟maven的作用是类似的 可以用ant也可以用maven 都是负责编译构建)


JDK




maven








管理员邮箱设置



两个地方需要设置 一个 是管理员的邮箱地址


这里的邮箱要跟下面的认证邮箱 一样

smtp服务器常用的如下,我这里用的qq






点击 Test configuration

测试邮箱就收到了邮件




到这里我们的设置就结束了,接着就可以正式使用jenkins进行项目管理了



构建job

现在我们来使用jenkins进行项目管理
现在创建一个新Job,名称就叫“project2_javaMavenSample-nightly”,类型选择“构建一个maven2/3项目” 



然后做一些项目的相关设置

构建设置

首先是  是否保留构建历史之类的设置



我们这里选 丢弃之前的构建


svn设置

这里配置的是项目的svn地址,比如我的项目叫ipFilter,我就找到它的SVN地址如下:





构建触发器设置



Build periodically:周期进行项目构建(它不关心源码是否发生变化)    

这里我们选择每当snapshot 依赖 变动时 就构建一次

jenkins还提供了定时构建 poll SCM
第一个参数代表的是分钟 minute,取值0~59
第二个参数代表的是小时 hour,取值0~23
第三个参数代表的是天 day,取值1~31
第四个参数代表的是月 month,取值1~12
第五个参数代表的是星期 week,取值0~7,0和7都是表示星期天
例子:
0 * * * *表示每个小时的第0分钟执行一次构建
*/5 * * * *表示每隔5分钟轮询一次
特殊字符:
*:星号表示匹配范围内所有值
M-N:连字符表示匹配M-N范围内的所有值,如"1-5"
A,B,...,Z:逗号表示匹配多个值,如"0,15,10"
*/X或M-N/X:范围加上斜杠表示匹配范围内能被X整除的值,如“1-10/3”,就等同于“3,6,9”
举例:
(1)****:每分钟
(2)5****:每小时中的第5分钟
(3)*/10****:每隔10分钟
(4)45 10 ** 1-5:每周一到周五的上午10点45分
(5)0,30 *  13 * 5:每月13号的每半个小时,或者每周五的每半个小时
在配置轮询的时候,还可以使用“#”添加注释,此外空白的行会被忽略。
对于一个健康的项目来说,觉见做法是:每隔10分钟轮询代码仓库(*/10 * * * *)


配置maven

配置maven项目的pom.xml所在的路径,也可以是相对路径(相对与svn的路径,jenkins提供了一些内部的参数可用 详见 http://ci.abc.com/jenkins/env-vars.html/)


这里pom.xml所在目录就是项目的根目录
构建命令 就是 maven 中的命令    清除后构建 跳过测试环节

在这里我们不仅仅是能进行项目的构建,当然也能通过maven命令来操作程序中main方法的运行。
具体的maven语句 可以参考:


邮箱通知设置




到此为止我们的构建就完成了。





监控构建任务状态

设置完成后,我们回到主页面发现已经有了我们的job


我们尝试一下构建 点击右边的按钮

如果不出错,那我们就构建成功了

我们在工作空间也能看到我们的项目了


状态集中能看到我们构建出的工程


这样就完成了一个发布的过程


还能在输出控制台中查看构建的日志




任务状态:
S:任务当前状态;
第一列的球形颜色:
蓝色:任务最近一次的构建是成功的
红色:任务最近一次的构建是失败的
黄色:任务最近一次的构建表成功了,但不稳定(主要是因为有失败的测试)
灰色:任务从未被执行过或者被禁用了
如果图标闪烁,表示任务正在执行一次构建
W:天气
第二列,使用天气图标表示任务长期的一个状态
万里晴空:>80%成功
稍有乌云:60%-80%成功
乌云密布:40%-60%成功
阴雨绵绵:20%-40%成功
电闪雷鸣:<20%成功




远程发布

在我们日常的发布中并不仅仅是生成war包和jar包就可以了。
我们应该把这个包放到远程服务器上运行 才算发布完成。
那我们应该还有一个步骤是 
Jenkins部署项目到远端的TOMCAT下

创建一个自动部署到测试环境的Job有很多方法。 

方法一:通过Deploy Plugin 


安装“Deploy Plugin”插件。这个插件支持 Tomcat 4.x/5.x/6.x/7.x、JBoss 3.x/4.x、Glassfish 2.x/3.x 的自动部署。 


安装后可以在设置Job的“构建后操作”部分添加“Deploy war/ear to container” 


填写tomcat的远程地址,管理帐号密码等相关信息


V2是 war包发布后的名称






要注意的是,比如你自动部署到 Tomcat 上,那么它的 webapps 目录下 manager 需要保留,然后在 conf/tomcat-users.xml 文件中,添加如下内容 
<tomcat-users>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin,manager"/>
</tomcat-users>
 
   
  




PS:发布的时候要保证tomcat已启动才能正确接收发布的代码


发布成功后 在tomcat的webapp中已经能看到war包了




方法二: 通过脚本

这种方式更自由,你可以写好一个脚本来做你希望的事情,然后通过Jenkins来远程启动这个脚本。 
如果时执行Windows下的批处理,就选择“Execute Windows batch command”,如果是bash脚本,就选择“Execute shell”。
写脚本时,有写Jenkins的内部变量你可以使用,比如我们这个实验系统,有个页面就是介绍这些内部变量的 http://ci.abc.com/jenkins/env-vars.html/。 



控制程序运行

上面我们说了怎么用jenkins进行项目的构建和远程发布
那如果我要在jenkins上控制一个程序运行 或者说定时运行 该怎么做呢
其实也很简单
因为我们在配置maven项目的时候 发现可以 填写不同的命令 
比如 我们上面填写的是  clean install -D maven.test.skip=true就是 跳过测试进行构建的意思
在配置时把它改成调用某个main方法即可。
例如
exec:java -Dexec.mainClass=action.doClass
具体的maven语句 可以参考:

 


猜你喜欢

转载自blog.csdn.net/q383965374/article/details/41827481