利用Jenkins自动化部署springboot项目到阿里云服务器(centos8)
背景:
最近想部署一个springboot项目到阿里云服务器里面。捣鼓了很久,构建了很多次,都失败了!实在是一脸辛酸,有点气馁~
在此想记录一下构建的过程。
不了解Jenkins之前,觉得Jenkins构建项目并部署到服务器上,很懵逼的感觉,一头雾水。原因是我固有思路:手工部署。比如:在IDEA构建好项目,然后将其war包移动到tomcat的webapps目录下,然后重启一下tomcat服务,再然后就可以在浏览器输入:http://ip地址:端口号/webapps目录下的项目名
。例如:http://47.115.58.253:8080/springboot
就可以访问了。
想了一下,这个过程其实很麻烦,首先在本地电脑构建好xxx.war,然后通过Xftp传文件到阿里云主机的tomcat的webapps目录下,然后通过Xshell远程远程连接阿里云主机,命令行手动重启tomcat。
在此之前,我看了很多Jenkins的使用教程,然后我意图将一个springboot项目构建成war包并且部署tomcat中,但是,不夸张地说构建了29次才得以build成功且deploy成功!
但是,最重要的一点是我貌似忽略了,springboot打包的jar包是可执行jar包,因为它是内置tomcat服务器,即系可以直接启动的,不用将其放在tomcat的webapps目录,直接启动就可以:nohup java -jar xxx.jar > out.log &
,如果不是关联项目,我觉得直接启动的方式最好。
Jenkins自动化部署springboot。
Jenkins的安装就不介绍了网上很多教程,插件需要安装:maven , git ,这两个插件。
构建部署分两种情况说:
①将springboot部署到tomcat的webapps中;
1. 描述。不用填写,默认是什么就什么。
2. 源码管理。选择git
如上图所示,我选择码云最为我的代码管理远程仓库!这里的仓库url就是:
credentials就是您登陆码云的用户名和密码。
3. 构建触发器。默认
4. 构建环境。默认
5. Pre Steps。默认
6. Build。
这里的root pom 一定要填写到Jenkins的workspace/item名称/根目录
,这个根目录,例如我的根目录就是如上图这个。然后goals and options可填可不填,也可以像以上这样填。
7. Post Steps。默认
8. 构建设置。默认
9. 构建后操作。选择deploy war/ear to a container
这里的war/ear files到底怎么填?
我一时间也被迷惑到了。试了好几次才正确,输入框右边有个" ?",点击一下,它提示相对路径,什么是相对路径,也就是我们利用Jenkins新建item的名称,就是根目录,根目录以下的都是相对路径。例如一个centos系统的完整目录:/usr/jenkins/workspace/test/springboot/target/springboot.war
,那么上图中的war/ear files就是这样填写:springboot/target/springboot.war
,可以使用*通配符:springboot/target/*.war
containers就根据您的服务器选择版本,这里的credentials又是什么?
tomcat目录下的:apache-tomcat-8.5.51/conf/tomcat-users.xml,里面的user的username和password,这里有一个坑需要注意的。就是里面的user用户名和密码都是原始的,例如下面这样的,这个的user必须需要有manger角色才可以。因此必须将它修改才可以!
原始的:
<role rolename="tomcat"/><role rolename="role1"/><user username="tomcat" password="<must-be-changed>" roles="tomcat"/><user username="both" password="<must-be-changed>" roles="tomcat,role1"/><user username="role1" password="<must-be-changed>" roles="role1"/>
修改后:
<role rolename="tomcat"/><role rolename="role1"/><role rolename="manager-script"/><role rolename="manager-gui"/><role rolename="admin-gui"/><user username="tomcat" password="lda1021" roles="tomcat"/><user username="both" password="lda1021" roles="tomcat,role1"/><user username="longdean" password="lda1021" roles="manager-script,manager-gui,admin-gui,tomcat,role1"/>
这样就可以了!
最后点击保存,返回item页面,点击立即构建!如无意外应该可以构建并且部署成功!
但是有3点需要注意的是:
1,确保代码编译的java版本低于服务器jdk的版本!
2,controller层的return必须页面必须正确!
3,有对应的数据库。
这三点有一点错都有可能导致部署失败!即使webapps中有相应war包,但是在www中访问不了,显示报404错误!
②将springboot直接启动。
与第①点不同的是Post Steps,构建后操作!其他相同的不说。
1. 描述。同上
2. 源码管理。同上
3. 构建触发器。同上
4. 构建环境。同上
5. Pre Steps。同上
6. Build。同上
7. Post Steps。
选择:Run only if build succeeds 。如何然后点击add post-build step,选择执行shell。
shell脚本如下:
#!/bin/bash
export BUILD_ID=dontKillMe
www_path=/usr/springboot
jar_path=/usr/jenkins/workspace/test/springboot/target/
jar_name=springboot.jar
pid=$(cat /usr/springboot/springboot.pid)
cd ${jar_path}
cp -f ${jar_path}/${jar_name} ${www_path}
cd ${www_path}
kill -9 ${pid}
nohup java -jar ${jar_name} > out.log &
echo $! > /usr/springboot/springboot.pid
上述脚本的意思就是:检测原有进程pid,有则将其杀死。然后将构建好的jar包复制到自定义工作目录下,后台启动jar包。
9. 构建设置。同上
10. 构建后操作。默认即可,不要 deploy war/ear to a container了。
最后,点击保存。返回到item页面,点击立即构建!
祝您成功!
如果您是新手,看到这部文章的话,还是有不明白的地方,请评论,我知道的看到的会立马回复的!
利用Jenkins自动化部署springboot项目到阿里云服务器(centos8)相关推荐
- Jenkins打包部署gitee项目至阿里云ECS服务器
原文地址:Jenkins打包部署gitee项目至阿里云ECS服务器 - BIGTREE (whwtree.com) 所需插件: Git Parameter Plug-In插件 Publish Over ...
- mysql上传到阿里云服务器地址_从0部署Web项目到阿里云服务器上
前言 本篇文章的主要内容正如标题所言,这个过程说简单也还是有很多细节需要注意的,说难其实也挺简单的,还是希望我们大家都能勤动手去体会其中的内容,经历本身就可以使人进步.话不多说,让我们开始吧. 正文 ...
- 部署SSM项目到阿里云服务器ECS
文章目录 一. 问题背景 二. 准备资源 三. 安装JDK 3.1 下载 3.2 安装 3.3 配置环境变量 四. 安装MySQL 4.1 下载 4.2 解压缩 4.3 修改操作系统配置 4.4 卸载 ...
- 部署vue项目到阿里云服务器
一般前端工程师只会使用npm run serve 在开发环境下验证,那么如何把npm run build 打出的包部署到服务器上进行上线呢?这篇文章就详细阐述这一流程. 1. 购买或试用阿里云服务器 ...
- 在windows环境中部署SSM项目到阿里云服务器-对象存储OSS
首先进入到阿里云官网:https://www.aliyun.com/,进入云服务器ECS,点击立即购买. 进入下面的界面,可以选择一键购买或者自定义购买 购买成功之后,点击管理控制台,进入购买之后的服 ...
- Linux之0基础入门,部署JavaWeb项目到阿里云服务器上,阿里云服务器安装MySQL并使用WorkBench连接,WorkBench导入SQL脚本,Linux之SSH和SFTP连接工具,
1.创建阿里云服务器 创建方法有两种,一种是购买云服务器,直接在阿里云控制台里可以找到.如图: 另一种是使用 阿里云 云起实验室的课程:搭建JavaWeb开发环境 提供的一次可以开两个小时的免费的服务 ...
- 如何部署javaweb项目到阿里云服务器
系统环境;centos7.4 64位 软件:jdk-8u181-linux-x64.tar.gz:mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz: 第一步:申请 ...
- 如何部署后端项目到阿里云服务器
解析域名,创建网站 1.登录阿里云,购买服务器ESC 可以选择你自己喜欢的操作系统,建议购买Linux系统的 2.购买成功,可以点击控制台选择云服务器ESC进入服务器概览页面,查看自己的实例 3.点击 ...
- Jenkins结合Gitee(码云)自动化部署Springboot项目(比较详细)
Jenkins结合码云自动化部署Springboot项目 一.准备工作(有的话,可以忽略) 1. 安装wget 2. 安装jdk 3. 安装maven 4. 安装git 二.开始部署 (jenkins ...
最新文章
- 上线随想之2011-03-25
- python的编程模式-举例讲解Python设计模式编程中的访问者与观察者模式
- hadoop 全分布式部署
- Hebb负向规则与矛盾解对
- vCenter Server管理:[2]创建只读账户
- html 图片 保持长宽比,实现图片在页面中宽高一直保持16:9比例的方法
- python开发图形小程序_python小程序图画 python开发微信小程序
- 不做别人思想的“跑马场”(人民论坛)
- 驻马店市机器人科技馆_科技创新体验馆,科技馆机器人
- Centos 编译安装mysql 5.6.21
- table td高度设置无效_Bootstrap Blazor 组件介绍 Table(一)
- Linux 和 Android 系统性能分析
- 关闭windows开机浏览器自动跳转MSN
- python 怕网页_如何像玩游戏一样学Python?
- Java实现 LeetCode 765 情侣牵手(并查集 || 暴力)
- MOSES翻译系统的训练,调优和使用
- 使用Adobe illustrator (AI)快速制作图标
- 微信浏览器video标签没有封面_video 标签在微信浏览器的问题解决方法
- 智能车入门——跑车前的零碎知识<新手从零做车>
- osgearth处理大tiff文件:利用VPB工具构建静态四叉树,使用osgearth加载成为地形层
热门文章
- python高级编程第3版_Python高级编程(第2版)
- XML语言数据读写理解13
- 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
- Scratch(二十二):家务大转盘
- excel工具栏隐藏了怎么办_excel隐藏的5个超级技巧,只有少数老师知道,你知道是哪几个吗?...
- 如何新建html页面,html网页制作的基本步骤是什么
- java计算机毕业设计购物网站源码+数据库+系统+lw文档+mybatis+运行部署
- Stable Diffusion 深度图像库插件使用小记
- com.android.rrpgdemo,Android实现文本逐字显示View(类似rpg游戏人物对话,文本逐字显示)...
- 2018网易计算机视觉岗实习生笔试题解