Jenkins简介

持续集成(Continuous Integration,简称CI)是一种软件开发实践,团队开发人员每次都通过自动化的构建(编译、发布、自动化测试)来验证,从而尽早的发现集成错误。持续集成最大的优点是避免了传统模式在集成阶段的除虫会议(bug meeting),其要素包括统一的代码库、自动构建、自动测试、自动部署、频繁提交修改过的代码等。

Jenkins的前身是Hudson,是基于Java开发的一种持续集成工具,是一个开源软件项目,主要用于:
持续、自动地构建/测试软件项目,如CruiseControl与DamageControl;
监控一些定时执行的任务;
  我这里Jenkins在本地windows环境安装,代码部署在服务器linux环境,Jenkins运行必须安装配置java运行环境

Jenkins安装

1、进入下载页下载war包 https://jenkins.io/download/

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_Jenkins


可以直接运行

https://jenkins.io/doc/pipeline/tour/getting-started/

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_jenkins 自动安装maven路径_02


也可以放到tomcat运行 我是放到本地tomcat运行的

2、运行配置

本地端口是8010

http://localhost:8010/jenkins/jenkins 自动安装maven路径 jenkins自动部署maven启动jar_tomcat_03出现该jenkins实例似乎已离线是因为本地https访问不了的原因。在浏览器中另打开一个界面http://localhost:8010/pluginManager/advanced,注意原来的页面不要关闭,把升级站点中的url中的https改为http,保存更新。然后关掉tomcat服务器重启,就可以了

接下来就按照步骤提示创建账户就可以了 我这里插件安装直接按照的推荐安装方式,后期又自己加入了GitLab Plugin 和Publish Over SSH

Jenkins配置

接下来就开始做一些全局的配置了 比如git jdk maven等

凭据配置

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_jenkins 自动安装maven路径_04


jenkins 自动安装maven路径 jenkins自动部署maven启动jar_tomcat_05


jenkins 自动安装maven路径 jenkins自动部署maven启动jar_tomcat_06


jenkins 自动安装maven路径 jenkins自动部署maven启动jar_jenkins 自动安装maven路径_07


jenkins 自动安装maven路径 jenkins自动部署maven启动jar_Jenkins_08


上图添加的是远程linux服务器的用户名密码

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_jenkins 自动安装maven路径_09


jenkins 自动安装maven路径 jenkins自动部署maven启动jar_Jenkins_10

工具配置

系统管理—>全局工具配置

jdk配置

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_jenkins 自动安装maven路径_11


我这里配置的是项目运行的服务器的jdk配置参数

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_jenkins 自动安装maven路径_12


git也是服务器上的git地址 上面两项在创建任务的时候使用

创建节点

这里的节点就是运行项目的服务器

系统管理—>节点列表->新建节点

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_Jenkins_13


jenkins 自动安装maven路径 jenkins自动部署maven启动jar_jenkins 自动安装maven路径_14


点击页面的 高级按钮 设置jdk路径 即服务器的jdk路径

注意:

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_jenkins 自动安装maven路径_15


用法:

1)尽可能的使用这个节点

这是默认和常用的设置. 在这种模式下,Jenkins会尽可能的使用这个节点.任何时候如果一个构建能使用这个节点构建,那么Jenkins就会使用它.2)只允许运行绑定到这台机器的Job

这种模式下,Jenkins只会构建哪些分配到这台机器的Job. 这允许一个节点专门保留给某种类型的Job.例如,在Jenkins上连续的执行测试,你可以设置执行者数量为1,那么同一时间就只会有一个构建, 一个实行者不会阻止其它构建,其它构建会在另外的节点运行.

在新建任务的时候选择这个节点用法如下

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_jenkins 自动安装maven路径_16


节点创建连接远程服务器必须需要Publish Over SSH插件

创建任务

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_Jenkins_17


任务名最好和你的项目名称一致,如果根据已有的项目复制 直接在下面填写要复制的任务名称即可

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_服务器_18


jenkins 自动安装maven路径 jenkins自动部署maven启动jar_tomcat_19


这里是之前添加的git凭据

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_tomcat_20


这里选择的是之前添加的服务器maven配置

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_jenkins 自动安装maven路径_21


这两项如果没有需要的话可以不做设置

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_tomcat_22


构建这里执行的shell命令

export PROJ_PATH=/home/jenkins/workspace/trade-center
export MVN_PATH=/usr/local/maven3/apache-maven-3.6.0/bin
#配置tomcat所在目录
export TOMCAT_APP_PATH=/usr/local/tomcat
export PROJ_NAMW=trade-center
export PROJ_WAR_NAMW=trade-center.war

cd /home/jenkins
sh deploy-center.sh

PROJ_PATH就是创建节点的时候设置的 远程工作目录/workspace/任务名称
MVN_PATH是maven的目录
TOMCAT_APP_PATH=tomcat目录
PROJ_NAMW=项目的访问目录即项目名称
PROJ_WAR_NAMW=war包名称

deploy-center.sh文件内容

#编译+部署项目站点
 #当jenkins进程结束后新开的tomcat进程不被杀死
BUILD_ID=DONTKILLME
#加载变量
#./etc/profile
### base 函数
killTomcat()
{
    #pid=`ps -ef|grep tomcat|grep java|awk '{print $2}'`
    #echo "tomcat Id list :$pid"
    #if [ "$pid" = "" ]
    #then
    #  echo "no tomcat pid alive"
    #else
    #  kill -9 $pid
    #fi
    #上面注释的或者下面的
    cd $TOMCAT_APP_PATH/bin
    sh shutdown.sh
}
cd $PROJ_PATH
$MVN_PATH/mvn clean install
 
# 停tomcat
killTomcat
# 删除原有工程
rm -rf $TOMCAT_APP_PATH/webapps/$PROJ_NAMW
rm -f $TOMCAT_APP_PATH/webapps/$PROJ_WAR_NAMW 
# 复制新的工程到tomcat上
cp $PROJ_PATH/target/$PROJ_WAR_NAMW $TOMCAT_APP_PATH/webapps/
# 启动Tomcat
cd $TOMCAT_APP_PATH
sh bin/startup.sh

点击保存尝试构建

错误记录

接下来记录一下我遇到的错误
1、/tmp/jenkins134403024716813474.sh: line 3: mvn: command not found
Build step ‘执行 shell’ marked build as failure
Finished: FAILURE
开始后出现这个错误的时候我以为服务器没有配置好mvn,后来在服务器直接执行deploy-center.sh文件运行没有问题,最后解决办法是mvn clean install时直接在明确mvn路径即$MVN_PATH/mvn clean install,MVN_PATH即上面配置的变量

2、

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_Jenkins_23


出现上面的错误是因为下图的 Git executable配置错误 配置成本地的git了 这里要选择之前设置的服务器git

jenkins 自动安装maven路径 jenkins自动部署maven启动jar_jenkins 自动安装maven路径_24


当然这些错误都是我自己踩的坑,上面的配置和shell命令是可以正常运行的,其他的Jenkins功能还没有尝试,现在只是暂时记录以防后期忘记。还有很多不理解的地方,仅仅是做个备忘,欢迎指正。