使用 Jenkins 部署码云上的 Spring Boot 项目
欢迎关注方志朋的博客,回复”666“获面试宝典
本文介绍 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
热门内容:
干掉visio,这个画图神器真的绝了!!!
尽快卸载这两款恶意浏览器插件!已有近 50 万用户安装
UUID正在被NanoID取代?
新来了个技术总监:谁再用 @Async 创建线程以后就不用来了!!
最新 955 不加班的公司名单(2022版)
我妈今年 70 岁,受不了Windows蓝屏,用了 21 年的 Linux!YYDS!
最近面试BAT,整理一份面试资料《Java面试BAT通关手册》,覆盖了Java核心技术、JVM、Java并发、SSM、微服务、数据库、数据结构等等。
获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。
明天见(。・ω・。)ノ♡
使用 Jenkins 部署码云上的 Spring Boot 项目相关推荐
- 花30分钟,用Jenkins部署码云上的SpringBoot项目
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多来源:ju ...
- 腾讯云服务器 - 将 Spring Boot 项目部署到云服务器上(保姆级教程)
目录 前言 1.在云服务器上安装 jdk 2.在云服务器上安装 mysql 2.1.安装 mysql 2.2.启动 mysql 服务 2.3.验证 3.将 Spring Boot 项目打包成 jar ...
- 利用公网IP访问部署在阿里云服务器的spring boot项目(一)
一路上真的不知道踩了多少个坑!!!差一点就要放弃了,呜呜,所以来总结一下,也许你也在向阿里云服务器部署项目,那就好好看看,因为究竟是踩到了哪一个坑,很不好说,所以下面这些坑简直非常非常详细,也欢迎大噶 ...
- java servlet 部署到tomcat_如何把spring boot项目部署到tomcat容器中
把spring-boot项目按照平常的web项目一样发布到tomcat容器下 一.修改打包形式 在pom.xml里设置 war 二.移除嵌入式tomcat插件 在pom.xml里找到spring-bo ...
- 解决: Gitee 自已提交的代码提交人头像为他人、码云上独自开发的项目显示为 2 个开发者
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 我的情况 : 项目一直只有我一个开发者,却莫名的出来了一个完全不认识的开发者,我新建后 pus ...
- Implicit super constructor xx() is undefined for default constructor. (在vscode上创建Spring boot项目)
结果比较乌龙,重要的是我自己探究这个的过程,因为不熟悉vscode平台,所以在尝试查找资料无果后,我就按照相同的条件在intelliJ上也创建了一个Spring boot, 对比了两个初始代码和pom ...
- 码云上传本地文件夹,码云只能上传20个文件的突破方法
码云官方地址:https://gitee.com/ 很多人不知道码云上传本地文件夹怎么操作,或者如何突破码云只能上传20个文件限制的问题,今天就来说说这事的方法吧. 简介: 码云是媲美GitHub的代 ...
- 码云上传文件夹_码云上传本地文件夹,码云只能上传20个文件的突破方法
码云官方地址:https://gitee.com/ 很多人不知道码云上传本地文件夹怎么操作,或者如何突破码云只能上传20个文件限制的问题,今天就来说说这事的方法吧. 简介: 码云是媲美GitHub的代 ...
- 第2章 第一个Spring Boot项目
开发工具选择 工欲善其事必先利其器,我们进行Java项目开发,选择一个好的集成开发工具(IDE)对提高我们的开发调试效率有非常大的帮助.这里我们选择大名鼎鼎的IDEA ,它全称 IntelliJ ID ...
最新文章
- iOS后台运行的设置方法
- [转]侯捷对进入IT行业的年轻人的建议
- Apache Tomcat 7 Configuration BIO NIO AIO APR ThreadPool
- pytorch搭建TextRNN与使用案例
- mysql 缺省配置 崩溃_MySQL5.6初始配置调优_MySQL
- webpack 4.0 学习笔记(一)
- 嵌入不同源的页面_嵌入式技术课程教与学(教学大纲和试卷)
- 计算机应用基础答案高继梅,[Flash游戏制作.doc
- One-Pass Multi-task Convolutional Neural Networks for Efficient Brain Tumor Segmentation
- python中循环语句有哪几种_Python的循环语句
- 二叉树查找结点及父结点_【剑指offer】57 二叉树的下一个结点
- python数据建模优缺点_Python数据分析\建模入门建议
- html5移动页面自适应手机屏幕大小,移动页面自适应手机屏幕的方法
- 工程图字体宋体仿宋_电纸书kindle字体推荐——耐看、悦目、经典
- EMOS邮件系统安装(光盘安装版)
- linux该专接本还是工作_专升本还是继续工作?
- C# DataGridView数据导出Excel文件
- VMware16.0如何装win7和win10
- 软件测试选哪个技术方向分支_硬件测试转软件测试,应该选哪个方向
- 《校园墙》小程序可行性分析