说明:
   jenkins maven svn实现自动编译及自动发布,svn也可以切换成git,看自己需要!之前也配置过几次,都没有做记录,后面再次配置很多忘记了,又得网上找资料,发现网上的资料很多都不全,要走很多弯路,因此这次把相关的配置记录下来,把每一步都做上备注。

具体配置主要分为几步:
一、环境准备(配置JDK,MAVEN,TOMCAT,SVN);
二、jenkins安装;
三、jenkins基础配置;
四、jenkins编译发布;


一、环境准备(配置JDK,MAVEN,TOMCAT,SVN);
1)下载JDK,MAVEN,TOMCAT
过程省略...
需要配置环境变量:

[root@vm2018 ~]# vi /etc/profile
#set jdk environment
export JAVA_HOME=/home/svr/software/java/jdk8
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
#set Maven environment
export MAVEN_HOME=/home/svr/software/maven
export PATH=$MAVEN_HOME/bin:$PATH

环境变量生效:


[root@vm2018 ~]# source /etc/profile

2)Tomcat配置:


[root@vm2018 conf]# vi tomcat-users.xml

进入到tomcat的conf目录下,编辑tomcat-users.xml配置文件


添加manager-script角色,并赋予角色给admin


<role rolename="admin-gui"/>


<role rolename="manager-gui"/>


<role rolename="manager-script"/>


<user username="admin" password="admin" roles="admin-gui,manager-gui,manager-script"/>



打开webapps下的host-manager和manager,都有一个共同的文件夹META-INF,里面都有context.xml,这个文件的内容是:


<Context antiResourceLocking="false" privileged="true" >


  <Valve className="org.apache.catalina.valves.RemoteAddrValve"


         allow="127.d+.d+.d+|::1|0:0:0:0:0:0:0:1" />


</Context>


说明:


修改allow值,因为allow设置了IP限制,在后面jenkins发布的时候会被限制,因此修改为允许访问,

即:设置 allow="^.*$" 表示允许任何ip访问;



3)SVN配置(该项可以省略,如果svn是自己安装的话需要设置):


具体配置参考:



重点是*=r和anon-access = read


这个配置在后面jenkins检测源码变动的时候需要访问,因此需要设置权限。



二、jenkins安装


[root@vm2018 ~]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo  
[root@vm2018 ~]# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
[root@vm2018 ~]# yum install jenkins

或者rpm安装


官网下载jenkins:https://pkg.jenkins.io/redhat-stable/


[root@vm2018 ~]# rpm -ih jenkins-2.9-1.1.noarch.rpm

说明:


自动安装完成之后相关配置问目录: 


/usr/lib/jenkins/jenkins.war    WAR包 


/etc/sysconfig/jenkins       配置文件


/var/lib/jenkins/       默认的JENKINS_HOME目录


/var/log/jenkins/jenkins.log    Jenkins日志文件



访问:http://ip:8080 默认端口为8080,注意端口占用情况,如下图:


jenkins 自动安装maven 如何修改镜像 jenkins自动部署maven项目_jenkins svn自动集成


说明:第一次登陆需要使用默认的密码,密码在服务器上的文件中,拷贝即可。

登录之后,选择"安装推荐的插件",如下图:

jenkins 自动安装maven 如何修改镜像 jenkins自动部署maven项目_jenkins定时发布_02

jenkins 自动安装maven 如何修改镜像 jenkins自动部署maven项目_jenkins_03

jenkins 自动安装maven 如何修改镜像 jenkins自动部署maven项目_jenkins定时发布_04

相关命令:


说明:只需要在访问jenkins服务器的网址url地址后加上相关操作单词即可,如下:



1、关闭Jenkins


http://localhost:8080/exit

2、重启Jenkies


http://localhost:8080/restart



3、重新加载配置信息


http://localhost:8080/reload



三、jenkins基础配置;


jenkins安装好之后,需要相关配置,基础配置主要有三个


1)插件管理
2)系统设置
3)全局工具配置


1)插件管理


选择左上角的系统管理=>插件管理


搜索插件进行安装:


安装Deploy to container(自动化部署插件)
安装Maven Integration(Maven集成插件)
安装Publish Over SSH(SSH远程连接插件)

安装Deploy Plugin (远程发布插件)




说明:在"可选插件"中如果搜索不到以上插件,可以到"已安装"选项中搜索是否以及安装了!


注意:因插件安装以后,需要重启Jenkins才能够使用。所以在安装插件时,可以勾选安装完成后重启Jenkins,即:在选择插件页面最后勾选上"重启Jenkins",如果不小心忘记勾选,也没有关系,可以在浏览器网址端口后面输入/restart来重启Jenkins。


2)系统设置


选择左上角的系统管理=>系统设置


主要配置以下几项:


其它的可以自己摸索配置以下,不配也不影响正常流程;


配置:Subversion
配置:Publish over SSH


如下图:






3)全局工具配置


选择左上角的系统管理=>全局工具配置


主要设置以下几项:


配置:Maven Configuration
配置:JDK


如下图:










四、jenkins编译发布


jenkin基础配置完成后,可以进行任务工程配置,主要包括以下几个步骤:

1)新建任务

2)源码配置

3)构建触发器

4)构建环境

5)Build

6)构建后操作

具体明细如下:

1)新建任务,如下图:




2)源码配置,如下图:



3)构建触发器,如下图:



图上是每个

两分钟检测一次源代码,如果有变化就执行任务


说明:


Jenkins提供了6中构建触发器,分别是:


build whenever a snapshot dependency is built ,当job依赖的快照版本被build时,执行本job;


触发远程构建 (例如,使用脚本);


build after other projects are built 当本job依赖的job被build时,执行本job;


build periodically 隔一段时间build一次,不管版本库代码是否发生变化,通常不会采用此种方式;


GitHub hook trigger for GITScm polling 通过Github钩子触发;


轮询 scm 隔一段时间比较一次源代码,如果发生变更,那么久build。否则,不进行build,通常采用这种方式。



定时构建 轮询 SCM说明:


第一个参数代表的是分钟 minute,取值0~59


第二个参数代表的是小时 hour,取值0~23


第三个参数代表的是天 day,取值1~31


第四个参数代表的是月 month,取值1~12


第五个参数代表的是星期 week,取值0~7,0和7都是表示星期天


查看后"问号帮助"说明Examples:


# every fifteen minutes (perhaps at :07, :22, :37, :52)


H/15 * * * *


# every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24)


H(0-29)/10 * * * *


# once every two hours at 45 minutes past the hour starting at 9:45 AM and finishing at 3:45 PM every weekday.


45 9-16/2 * * 1-5


# once in every two hours slot between 9 AM and 5 PM every weekday (perhaps at 10:38 AM, 12:38 PM, 2:38 PM, 4:38 PM)


H H(9-16)/2 * * 1-5


# once a day on the 1st and 15th of every month except December


H H 1,15 1-11 *




4)构建环境,如下图:




5)Build,如下图:


输入clean package


或者是


clean package -Dmaven.repo.local=/home/svr/software/mvn_res


前者是使用默认的maven仓库路径即:/root/.m2/repository,可以使用第二个命令-Dmaven.repo.local指定仓库地址;




6)构建后操作,如下图:


选择

Deploy war/ear to container 


发布到容器




至此配置完成,可以启动任务了:





PS:

如果出现以下错误,需要关注下耗时及内存情况,在编译发布的过程中是比较消耗内存的,如果内存不够系统会强制停止

Downloaded from alimaven: xxx (223 kB at 3.0 kB/s)

Started

Finished: ABORTED