jenkins+maven+git 自动部署

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凭据
这里是之前添加的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功能还没有尝试,现在只是暂时记录以防后期忘记。还有很多不理解的地方,仅仅是做个备忘,欢迎指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值