欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Jenkins maven自动发布配置

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

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


一、环境准备(配置JDK,MAVEN,TOMCAT,SVN);
1)下载JDK,MAVEN,TOMCAT
过程省略...
需要配置环境变量:
[aaa@qq.com ~]# 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
环境变量生效:
[aaa@qq.com ~]# source /etc/profile
2)Tomcat配置:
[aaa@qq.com 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是自己安装的话需要设置):
具体配置参考:https://blog.csdn.net/vtopqx/article/details/81026244
重点是*=r和anon-access = read
这个配置在后面jenkins检测源码变动的时候需要访问,因此需要设置权限。

二、jenkins安装
[aaa@qq.com ~]# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo  
[aaa@qq.com ~]# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
[aaa@qq.com ~]# yum install jenkins
或者rpm安装
官网下载jenkins:https://pkg.jenkins.io/redhat-stable/
[aaa@qq.com ~]# 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 maven自动发布配置

Jenkins maven自动发布配置

相关命令:
说明:只需要在访问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 maven自动发布配置


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

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

2)系统设置
选择左上角的系统管理=>系统设置
主要配置以下几项:
其它的可以自己摸索配置以下,不配也不影响正常流程;
配置:Subversion
配置:Publish over SSH

如下图:

Jenkins maven自动发布配置

Jenkins maven自动发布配置


3)全局工具配置
选择左上角的系统管理=>全局工具配置
主要设置以下几项:
配置:Maven Configuration
配置:JDK

如下图:
Jenkins maven自动发布配置
Jenkins maven自动发布配置






四、jenkins编译发布

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

1)新建任务

2)源码配置

3)构建触发器

4)构建环境

5)Build

6)构建后操作

具体明细如下:

1)新建任务,如下图:
Jenkins maven自动发布配置

2)源码配置,如下图:

Jenkins maven自动发布配置
3)构建触发器,如下图:
Jenkins maven自动发布配置
图上是每个两分钟检测一次源代码,如果有变化就执行任务
说明:
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)构建环境,如下图:
Jenkins maven自动发布配置

5)Build,如下图:
输入clean package
或者是
clean package -Dmaven.repo.local=/home/svr/software/mvn_res
前者是使用默认的maven仓库路径即:/root/.m2/repository,可以使用第二个命令-Dmaven.repo.local指定仓库地址;
Jenkins maven自动发布配置

6)构建后操作,如下图:
选择Deploy war/ear to container 
发布到容器
Jenkins maven自动发布配置


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

Jenkins maven自动发布配置

Jenkins maven自动发布配置


PS:

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

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