Jenkins简介
持续集成(Continuous Integration,简称CI)是一种软件开发实践,团队开发人员每次都通过自动化的构建(编译、发布、自动化测试)来验证,从而尽早的发现集成错误。持续集成最大的优点是避免了传统模式在集成阶段的除虫会议(bug meeting),其要素包括统一的代码库、自动构建、自动测试、自动部署、频繁提交修改过的代码等。
Jenkins的前身是Hudson,是基于Java开发的一种持续集成工具,是一个开源软件项目,主要用于:
持续、自动地构建/测试软件项目,如CruiseControl与DamageControl;
监控一些定时执行的任务;
我这里Jenkins在本地windows环境安装,代码部署在服务器linux环境,Jenkins运行必须安装配置java运行环境
Jenkins安装
1、进入下载页下载war包 https://jenkins.io/download/
可以直接运行
https://jenkins.io/doc/pipeline/tour/getting-started/
也可以放到tomcat运行 我是放到本地tomcat运行的
2、运行配置
本地端口是8010
http://localhost:8010/jenkins/出现该jenkins实例似乎已离线是因为本地https访问不了的原因。在浏览器中另打开一个界面http://localhost:8010/pluginManager/advanced,注意原来的页面不要关闭,把升级站点中的url中的https改为http,保存更新。然后关掉tomcat服务器重启,就可以了
接下来就按照步骤提示创建账户就可以了 我这里插件安装直接按照的推荐安装方式,后期又自己加入了GitLab Plugin 和Publish Over SSH
Jenkins配置
接下来就开始做一些全局的配置了 比如git jdk maven等
凭据配置
上图添加的是远程linux服务器的用户名密码
工具配置
系统管理—>全局工具配置
jdk配置
我这里配置的是项目运行的服务器的jdk配置参数
git也是服务器上的git地址 上面两项在创建任务的时候使用
创建节点
这里的节点就是运行项目的服务器
系统管理—>节点列表->新建节点
点击页面的 高级按钮 设置jdk路径 即服务器的jdk路径
注意:
用法:
1)尽可能的使用这个节点
这是默认和常用的设置. 在这种模式下,Jenkins会尽可能的使用这个节点.任何时候如果一个构建能使用这个节点构建,那么Jenkins就会使用它.2)只允许运行绑定到这台机器的Job
这种模式下,Jenkins只会构建哪些分配到这台机器的Job. 这允许一个节点专门保留给某种类型的Job.例如,在Jenkins上连续的执行测试,你可以设置执行者数量为1,那么同一时间就只会有一个构建, 一个实行者不会阻止其它构建,其它构建会在另外的节点运行.
在新建任务的时候选择这个节点用法如下
节点创建连接远程服务器必须需要Publish Over SSH插件
创建任务
任务名最好和你的项目名称一致,如果根据已有的项目复制 直接在下面填写要复制的任务名称即可
这里是之前添加的git凭据
这里选择的是之前添加的服务器maven配置
这两项如果没有需要的话可以不做设置
构建这里执行的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、
出现上面的错误是因为下图的 Git executable配置错误 配置成本地的git了 这里要选择之前设置的服务器git
当然这些错误都是我自己踩的坑,上面的配置和shell命令是可以正常运行的,其他的Jenkins功能还没有尝试,现在只是暂时记录以防后期忘记。还有很多不理解的地方,仅仅是做个备忘,欢迎指正。