一、环境搭建

本次实验的环境为Ubuntu 16.04,Jenkins 2.8.3

1、安装ssh

sudo apt-get update  # 更新软件源
sudo apt-get install openssh-server # 安装ssh
sudo ps -e |grep ssh ## 查询是否启动 ,如果没有启动 sudo service ssh start 启动
使用gedit修改配置文件”/etc/ssh/sshd_config” 获取远程ROOT权限
打开”终端窗口”,输入”sudo gedit /etc/ssh/sshd_config“
–>回车–>把配置文件中的”PermitRootLogin without-password“加一个”#”号,把它注释掉
–>再增加一句”PermitRootLogin yes“
–>保存,修改成功

查看ip:

ifconfig

2、安装vim

sudo apt-get install vim

3、本地使用ssh工具或者git bash远程连接

ssh root@47.95.0.243 -p 22

  这里推荐一个不错的ssh工具,基于Java开发,叫FinalShell,下载地址http://www.hostbuf.com/。自带加速海外连接功能。

4、安装jdk

sudo apt-get install openjdk-8-jdk
java -version # 查看是否安装成功

openjdk的安装目录在 /usr/lib/jvm/java-8-openjdk-amd64

5、安装maven

最新版本为3.6.0

wget http://apache.communilink.net/maven/maven-3/3.6.0/binaries/apache-maven-3.6.0-bin.tar.gz ## 下载
tar vxf apache-maven-3.5.0-bin.tar.gz ## 解压
mv apache-maven-3.5.0 /usr/local/maven3 ## 移动

修改环境变量

在/etc/profile 中添加以下几行

MAVEN_HOME=/usr/local/maven3 #此处根据你的maven安装地址修改
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin

执行source /etc/profile使环境变量生效

运行mvn -v验证maven是否安装成功

6、安装git

sudo apt-get install git # 安装git
git config --global user.name "zsh"
git config --global user.email "43240825@qq.com"

7、关闭防火墙

sudo ufw status # 查看防火墙状态
sudo ufw disable #关闭防火墙

active为开启状态。inactive为关闭状态

8、安装MySQL(非必需)

sudo apt-get update
sudo apt-get install mysql-server

在弹出的页面中输入两次数据库root用户的密码即可。

修复数据库中文乱码问题

修改/etc/mysql/my.cnf,加入下面这几行

[mysqld]
character_set_server=utf8
[mysql]
default-character-set= utf8
[client]
default-character-set = utf8

重启数据库:

service mysql restart

查询数据库字符编码

mysql -uroot -p
show variables like '%character%';

自此中文乱码问题已经修复。

一般阿里云或者腾讯云买的服务器,Ubuntu 16.04 中自带ssh和vim。

二、Jenkins 安装

下载 https://pkg.jenkins.io/debian-stable/

sudo apt-get update
sudo apt-get install jenkins

或者离线下载之后,上传至服务器,此处我放在了 /opt

启动服务

默认启动在8080
java -jar jenkins.war &
启动在指定端口可以
nohup java -jar jenkins.war --httpPort=8080 &

Jenkins 就启动成功了!它的war包自带Jetty服务器

第一次启动Jenkins时,出于安全考虑,Jenkins会自动生成一个随机的按照口令。注意控制台输出的口令,复制下来,然后在浏览器输入密码:

因为项目是启动在 ubuntu 系统里,所以我们在外面可以用服务器ip访问

http://47.95.0.243:8080

此处注意,如果没有给服务器防火墙打开8080端口,是没法访问的。

输入上面的密码

进入用户自定义插件界面,建议选择安装官方推荐插件,因为安装后自己也得安装:

等待一段时间之后,插件安装完成,如果有部分插件未安装成功,不比担心,继续配置用户名密码:

三、Jenkins 配置

进入 系统管理 -> 全局工具配置

1、配置jdk

2、配置git

3、配置maven

四、部署项目

1、首页点击新建:输入项目名称

如果你没有第二个选项,需要安装 Maven Integration 插件

2、勾选丢弃旧的构建,选择是否备份被替换的旧包。我这里选择备份最近的10个

3、源码管理,选择git,配置Git相关信息

4、构建环境中勾选“Add timestamps to the Console Output”,代码构建的过程中会将日志打印出来

5、在Build中输入打包前的mvn命令,如:

clean install -Dmaven.test.skip=true -Ptest

6、Post Steps 选择 Run only if build succeeds

7、点击Add post-build step,选择 Excute Shell

cd /home/admin/Jenkins-in #根据自己stop.sh、replace.sh脚本地址写
sh stop.sh
sh replace.sh
BUILD_ID=dontKillMe nohup java -jar /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar &
#根据自己jar包的名称、地址修改

stop.sh

# 将应用停止
#stop.sh
#!/bin/bash
echo "Stopping SpringBoot Application"
pid=`ps -ef | grep personal-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi #此处personal-0.0.1-SNAPSHOT.jar根据自己的jar包名称修改

replace.sh

#replace.sh 用于将上次构建的结果备份,然后将新的构建结果移动到合适的位置
#!/bin/bash
# 先判断文件是否存在,如果存在,则备份
file="/www/server/workspace/autumn-0.0.1-SNAPSHOT.jar"
if [ -f "$file" ]
then
mv /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar.`date +%Y%m%d%H%M%S`
fi
mv /root/.jenkins/workspace/hello/target/personal-0.0.1-SNAPSHOT.jar /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar #此处 /home/admin/workspace/personal-0.0.1-SNAPSHOT.jar根据自己实际jar包名称和路径修改

此处如果使用windows的notepad++写好之后再上传上去,有可能出现一个错误

stop.sh: Syntax error: end of file unexpected (expecting "then")

解决方案

在vim中修改下文件的格式就好了,直接输入":",然后在":"之后输入"set ff"如下图所示

把格式改为unix,方法是输入":set ff=unix",也可以输入":set fileformat=unix"如下图所示。

输入完之后,回车即可完成切换格式。然后我们再输入":set ff"来查看格式,如下图所示,可以看到当前脚本格式变成了我们想要的"unix"了。

此时就没有问题了。

五、构建项目

左侧有构建状态,蓝色表示成功,红色表示失败。

点进去可以查看本次构建信息,点击左侧的控制台日志。

访问项目,成功!

使用Jenkins构建、部署spring boot项目的更多相关文章

  1. 使用Jenkins部署Spring Boot项目

    jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目 jenkins搭建 部署分为三个步骤: 第一步,jenkins安装 第二步,插件安装和配置 第 ...

  2. Jenkins自动部署spring boot

    Jenkins自动部署spring boot 背景介绍 本公司属于微小型企业,初期业务量不高,所有程序都写在一个maven项目里面,不过是多模块开发. 分了login模块,service模块,cms模 ...

  3. 使用Docker部署Spring boot项目

    Docker是一个使用广泛的Linux容器管理工具包,它允许用户创建镜像,并将其容器实例化.通过本指南,我们可以学习到如何使用Docker部署Spring Boot项目. 先决条件 开发之前,你必须具 ...

  4. Docker Gitlab CI 部署 Spring Boot 项目

    目前在学习这一块的内容,但是可能每个人环境都不同,导致找不到一篇博客能够完全操作下来没有错误的,所以自己也写一下,记录一下整个搭建的过程. Docker 的安装这里就不赘述了,基本上几行命令都可以了, ...

  5. Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

    在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ...

  6. 使用 Docker 部署 Spring Boot 项目

    Docker 介绍 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口.它是目前最流行的 Linux 容器解决方案. Docker 将应用程序与该程序的依赖,打包在一个文件里面 ...

  7. IDEA连接远程服务器Docker部署Spring Boot项目

    开始前的准备工作 拥有一台云服务器,我的是腾讯云服务器(CentOS7) 腾讯云服务器安装Docker,我的版本是Docker 19.03.9,关于安装和配置镜像加速器可以查阅我的另一篇博文:http ...

  8. 使用 Docker 部署 Spring Boot 项目,带劲!!

    上一篇:年轻人的第一个 Docker 应用 Docker 一次构建.处处运行及快速启停的特性,在微服务架构中有着举足轻重的地位,具体的概念性的东西就不介绍了,不懂的点击这里阅读 Docker 基础教程 ...

  9. 从零部署Spring boot项目到云服务器(正式部署)

    上一篇文章总结了在Linux云服务器上部署Spring Boot项目的准备过程,包括环境的安装配置,项目的打包上传等. 链接在这里:http://www.cnblogs.com/Lovebugs/p/ ...

  10. Windows Docker 部署 Spring Boot 项目

    目录 Docker Configuration Config IDEA Plugin Create Spring Boot Project Containerize It Use Dockerfile ...

随机推荐

  1. jsp的文件包含漏洞

    jsp的文件包含分静态包含的动态包含两种: 静态包含:<%@include file="top.jsp"%> 动态包含:<jsp:include page=&qu ...

  2. 如何简单地理解Python中的if __name__ == '__main__'(https://blog.csdn.net/yjk13703623757/article/details/77918633)

    1. 摘要 通俗的理解__name__ == '__main__':假如你叫小明.py,在朋友眼中,你是小明(__name__ == '小明'):在你自己眼中,你是你自己(__name__ == '_ ...

  3. Unity shader学习之屏幕后期处理效果之高斯模糊

    高斯模糊,见 百度百科. 也使用卷积来实现,每个卷积元素的公式为: 其中б是标准方差,一般取值为1. x和y分别对应当前位置到卷积中心的整数距离. 由于需要对高斯核中的权重进行归一化,即使所有权重相加 ...

  4. JSP—简介

    BS/CS的区别? CS模式: client:客户端:存放操作界面的图片样式本地数据和缓存等 server:服务端:保存核心数据 请求响应模式:收到请求后,服务器只需要返回核心的数据 优缺点:需要安装 ...

  5. SQLSetEnvAttr

    SQLSetEnvAttr 函数定义: 函数的大概意思就是将,第一个参数设置为第二个参数的属性 SQLRETURN SQLSetEnvAttr( SQLHENV     EnvironmentHand ...

  6. 超简单系列:ubuntu 13.04 安装 apache2.2+mod_wsgi+Django

    1,Ubuntu更新系统 sudo apt-get update sudo apt-get upgrade 2,安装apache,mod_wsgi,Django sudo apt-get instal ...

  7. 如何让多个dz论坛共用一个用户数据库

    用户数据库在论坛中是可以独立备份的,备份方法:论坛后台——站长——数据库,备份所有ucenter数据表,也就是用户数据.其他DZ论坛搭建完成以后,可以上传用户数据库,将备份文件使用上传至网站所使用的主 ...

  8. jQuery工具--jQuery.isNumeric(value)和jQuery.trim(str)

    jQuery.isNumeric(value) 概述 确定它的参数是否是一个数字. $.isNumeric() 方法检查它的参数是否代表一个数值.如果是这样,它返回 true.否则,它返回false. ...

  9. Spring源码阅读(一)

    Spring通过配置文件或者注解对类实例进行加载管理.稍微思考,可以猜测spring加载过程肯定先把配置转化为统一的配置对象,再把通过配置对象生产类实例.阅读源码,我们也可以发现这个逻辑. sprin ...

  10. 转:【专题三】自定义Web服务器

    前言: 经过前面的专题中对网络层协议和HTTP协议的简单介绍相信大家对网络中的协议有了大致的了解的, 本专题将针对HTTP协议定义一个Web服务器,我们平常浏览网页通过在浏览器中输入一个网址就可以看到 ...