使用 Jenkins 部署码云上的 Spring Boot 项目
共 2969字,需浏览 6分钟
·
2022-03-02 22:39
本文介绍 jenkins 何从 gitee 上 clone 项目,然后使用 maven 打包并后台启动。
1.Jenkins 介绍
Jenkins 是一个开源软件项目,是基于 Java 开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。(以上介绍来源于百度百科)
其实通俗来说,Jenkins 就是一个自动化部署项目的工具,帮我省去重复的运维工作。
2. 环境准备
本文需要如下几个工具:
JDK
Git
Maven
以上三种就不在这里介绍安装了,这里我贴出我的环境变量配置仅供参考:
Jenkins
我的 Jenkins 是使用如下方式安装:
sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.reposudo rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.keysudo yum install jenkins
启动
service jenkins start
然后访问 http://${ip}/8080,可以看到 jenkins 那个小老头,根据自行配置安装插件,其中密码在这里
vi /var/lib/jenkins/secrets/initialAdminPassword
以上都在网上有很多,我在博客中也写过,就不在这里废话太多了。
3.Jenkins 工具插件配置
3.1 插件配置
个人建议,Jenkins 第一次进入推荐安装的插件就默认安装就行,省的还需要后续自己安装,当然,如果自己安装的话需要 Maven 和 Git 插件。
3.2 工具配置
JDK
Git
Maven
这里就可以用到上面环境准备时需要的截图,这里我也摸索了很久才配置完成。
4. 配置项目
4.1 构建自由风格的项目
新建项目,选择构建自由风格的项目,给项目起个名字,然后点击 Ok。
4.2 配置参数化构建过程
这里我用到了几个参数,因为可能有时需要提前准备好参数在进行构建,如下图:
jar_path : 本意是准备项目打包后的 jar 位置,其实这里是 Jenkins 工作空间 spring_profile:这个是读取配置文件前缀,比如 dev,test,prod jar_name:jar 包名称 project_name:项目名称
4.3 Git 配置
用 Git 进行将项目 Clone 下来,配置自己的用户密码,Repository URL 配置 git 地址(这里提供的地址是私密项目,项目没什么特别的,就是简单 SpringBoot 项目,不用尝试了,用自己项目就可以)
4.4 配置 Build
这里选择执行 Shell,内容如下:
mvn clean install -Dmaven.test.skip=trueecho $spring_profile $jar_path $jar_namecd /usr/local/shell/./stop.sh $jar_nameecho "Execute shell Finish"./startup.sh $spring_profile $jar_path $jar_name $project_name
如图:
在上面执行的 Shell 里面还用到了两个 Shell,分别是 stop.sh,实质就是找到 jar 执行的 pid,然后 kill,具体内容如下:
jar_name=${1}echo "Stopping" ${jar_name}pid=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`if [ -n "$pid" ]then echo "kill -9 的pid:" $pid kill -9 $pidfi
startup.sh 内容如下,具体可以根据情况修改:
spring_profile=${1}jar_path=${2}jar_name=${3}project_name=${4}cd ${jar_path}/${project_name}/target/echo ${jar_path}/${project_name}/target/echo nohup java -jar ${jar_name} &BUILD_ID=dontKillMe nohup java -jar ${jar_name} --spring.profiles.active=${spring_profile} &
5 测试运行
5.1 运行
点击运行后,如图所示,刚刚预配置的参数都可以看到并可以修改,这里我们用默认配置好的就可以。
然后点击运行就可以,当时遇到了一个插曲,我的 Maven 是安装成功的,但是 Jenkins 内无法使用,报错 mvn:command not found,这里我解决的方式是将 mvn 命令也指向 / usr/bin/mvn,如下:
ln -s /usr/local/apache-maven-3.5.4/bin/mvn /usr/bin/mvn
访问效果其实就是我的博客,如图所示:
6 总结
总体过程坑其实还是很多的,毕竟没有使用过,但是没有什么特别棘手的问题,总是出现不同的问题,有需要可以与我一起交流学习。
作者:dalaoyang 来源:juejin.im/post/5be1a485f265da612859974c
我们创建了一个高质量的技术交流群,与优秀的人在一起,自己也会优秀起来,赶紧点击加群,享受一起成长的快乐。另外,如果你最近想跳槽的话,年前我花了2周时间收集了一波大厂面经,节后准备跳槽的可以点击这里领取!
推荐阅读
ApplicationStartedEvent 与 ContextStartedEvent 有区别吗? 接口经常超时?线程池+ FutureTask来解决! 从 Windows 切换到 Mac,不能错过这9条Tips
你好,我是程序猿DD,10年开发老司机、阿里云MVP、腾讯云TVP、出过书、创过业、国企4年互联网6年。10年前毕业加入宇宙行,工资不高、也不算太忙,业余坚持研究技术和做自己想做的东西。4年后离开国企,加入永辉互联网板块的创业团队,从开发、到架构、到合伙人。一路过来,给我最深的感受就是一定要不断学习并关注前沿。只要你能坚持下来,多思考、少抱怨、勤动手,就很容易实现弯道超车!所以,不要问我现在干什么是否来得及。如果你看好一个事情,一定是坚持了才能看到希望,而不是看到希望才去坚持。相信我,只要坚持下来,你一定比现在更好!如果你还没什么方向,可以先关注我,这里会经常分享一些前沿资讯,帮你积累弯道超车的资本。