背景:

最近想部署一个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)相关推荐

  1. Jenkins打包部署gitee项目至阿里云ECS服务器

    原文地址:Jenkins打包部署gitee项目至阿里云ECS服务器 - BIGTREE (whwtree.com) 所需插件: Git Parameter Plug-In插件 Publish Over ...

  2. mysql上传到阿里云服务器地址_从0部署Web项目到阿里云服务器上

    前言 本篇文章的主要内容正如标题所言,这个过程说简单也还是有很多细节需要注意的,说难其实也挺简单的,还是希望我们大家都能勤动手去体会其中的内容,经历本身就可以使人进步.话不多说,让我们开始吧. 正文 ...

  3. 部署SSM项目到阿里云服务器ECS

    文章目录 一. 问题背景 二. 准备资源 三. 安装JDK 3.1 下载 3.2 安装 3.3 配置环境变量 四. 安装MySQL 4.1 下载 4.2 解压缩 4.3 修改操作系统配置 4.4 卸载 ...

  4. 部署vue项目到阿里云服务器

    一般前端工程师只会使用npm run serve 在开发环境下验证,那么如何把npm run build 打出的包部署到服务器上进行上线呢?这篇文章就详细阐述这一流程. 1. 购买或试用阿里云服务器 ...

  5. 在windows环境中部署SSM项目到阿里云服务器-对象存储OSS

    首先进入到阿里云官网:https://www.aliyun.com/,进入云服务器ECS,点击立即购买. 进入下面的界面,可以选择一键购买或者自定义购买 购买成功之后,点击管理控制台,进入购买之后的服 ...

  6. Linux之0基础入门,部署JavaWeb项目到阿里云服务器上,阿里云服务器安装MySQL并使用WorkBench连接,WorkBench导入SQL脚本,Linux之SSH和SFTP连接工具,

    1.创建阿里云服务器 创建方法有两种,一种是购买云服务器,直接在阿里云控制台里可以找到.如图: 另一种是使用 阿里云 云起实验室的课程:搭建JavaWeb开发环境 提供的一次可以开两个小时的免费的服务 ...

  7. 如何部署javaweb项目到阿里云服务器

    系统环境;centos7.4  64位 软件:jdk-8u181-linux-x64.tar.gz:mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz: 第一步:申请 ...

  8. 如何部署后端项目到阿里云服务器

    解析域名,创建网站 1.登录阿里云,购买服务器ESC 可以选择你自己喜欢的操作系统,建议购买Linux系统的 2.购买成功,可以点击控制台选择云服务器ESC进入服务器概览页面,查看自己的实例 3.点击 ...

  9. Jenkins结合Gitee(码云)自动化部署Springboot项目(比较详细)

    Jenkins结合码云自动化部署Springboot项目 一.准备工作(有的话,可以忽略) 1. 安装wget 2. 安装jdk 3. 安装maven 4. 安装git 二.开始部署 (jenkins ...

最新文章

  1. 上线随想之2011-03-25
  2. python的编程模式-举例讲解Python设计模式编程中的访问者与观察者模式
  3. hadoop 全分布式部署
  4. Hebb负向规则与矛盾解对
  5. vCenter Server管理:[2]创建只读账户
  6. html 图片 保持长宽比,实现图片在页面中宽高一直保持16:9比例的方法
  7. python开发图形小程序_python小程序图画 python开发微信小程序
  8. 不做别人思想的“跑马场”(人民论坛)
  9. 驻马店市机器人科技馆_科技创新体验馆,科技馆机器人
  10. Centos 编译安装mysql 5.6.21
  11. table td高度设置无效_Bootstrap Blazor 组件介绍 Table(一)
  12. Linux 和 Android 系统性能分析
  13. 关闭windows开机浏览器自动跳转MSN
  14. python 怕网页_如何像玩游戏一样学Python?
  15. Java实现 LeetCode 765 情侣牵手(并查集 || 暴力)
  16. MOSES翻译系统的训练,调优和使用
  17. 使用Adobe illustrator (AI)快速制作图标
  18. 微信浏览器video标签没有封面_video 标签在微信浏览器的问题解决方法
  19. 智能车入门——跑车前的零碎知识<新手从零做车>
  20. osgearth处理大tiff文件:利用VPB工具构建静态四叉树,使用osgearth加载成为地形层

热门文章

  1. python高级编程第3版_Python高级编程(第2版)
  2. XML语言数据读写理解13
  3. 共有n种图案的印章,每种图案的出现概率相同。小A买了m张印章,求小A集齐n种印章的概率。
  4. Scratch(二十二):家务大转盘
  5. excel工具栏隐藏了怎么办_excel隐藏的5个超级技巧,只有少数老师知道,你知道是哪几个吗?...
  6. 如何新建html页面,html网页制作的基本步骤是什么
  7. java计算机毕业设计购物网站源码+数据库+系统+lw文档+mybatis+运行部署
  8. Stable Diffusion 深度图像库插件使用小记
  9. com.android.rrpgdemo,Android实现文本逐字显示View(类似rpg游戏人物对话,文本逐字显示)...
  10. 2018网易计算机视觉岗实习生笔试题解