使用jenkins持续构建、部署SpringBoot项目

jenkins是devops神器,本篇文章介绍如何安装和使用 jenkins 部署Spring Boot项目。

 

一、Linux 环境搭建

为了接近后面的生产环境,我这里使用 Linux 来测试(其实 Windows 也可以安装 Jenkins 的)。

在 win10 上安装 VMware Workstation Pro 虚拟机,使用 NAT 模式(本机和虚拟机都可以上网)。

虚拟机安装 ubuntu16.04 系统。代码是从 Git 上拉取。

 

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、本地使用 git bash 或者 XShell 等工具ssh 远程连接

示例

ssh -q -l root -p 22 192.168.28.128

 

4、安装 jdk

sudo apt-get install openjdk-8-jdk

java -version # 查看是否安装成功

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

 

5、安装 maven

版本要求maven3.5.0

wget http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.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 (也有可能是在 ~/.bash_profile)中添加以下几行

  1. MAVEN_HOME=/usr/local/maven3
  2. export MAVEN_HOME
  3. 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 "saysky"

git config --global user.email "847064370@qq.com"

 

7、关闭防火墙

sudo ufw status # 查看防火墙状态

sudo ufw disable  #关闭防火墙

 

二、项目准备

1、在本地完成一个 SpringBoot 的 HelloWorld 项目,提交到码云(gitee.com,主要比 github 访问快点)上

代码地址:https://gitee.com/saysky/HelloWorld

 

2、在 Linux 内新建目录

/home/saysky/workspace

/home/saysky/workspace/backup

/home/saysky/workspace/Jenkins-in

 

3、在 /home/saysky/workspace/Jenkins-in 内创建 stop.sh、replace.sh

 

stop.sh

  1. # 将应用停止
  2. #stop.sh
  3. #!/bin/bash
  4. echo "Stopping SpringBoot Application"
  5. pid=`ps -ef | grep hello-world-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
  6. if [ -n "$pid" ]
  7. then
  8.    kill -9 $pid
  9. fi

replace.sh

  1. #replace.sh 用于将上次构建的结果备份,然后将新的构建结果移动到合适的位置
  2. #!/bin/bash
  3. # 先判断文件是否存在,如果存在,则备份
  4. file="/www/server/workspace/autumn-0.0.1-SNAPSHOT.jar"
  5. if [ -f "$file" ]
  6. then
  7.    mv /home/saysky/workspace/hello-world-0.0.1-SNAPSHOT.jar.`date +%Y%m%d%H%M%S`
  8. fi
  9. mv /root/.jenkins/workspace/HelloWorld/target/hello-world-0.0.1-SNAPSHOT.jar /home/saysky/workspace/hello-world-0.0.1-SNAPSHOT.jar

 

 

 

注意:这几个文件的创建可以到第五章第7步再做,放在这里是主要是方便以后查看。

 

三、jenkins 安装

下载

cd /opt

wget http://mirrors.jenkins.io/war/2.83/jenkins.war

 

启动服务

默认启动在8080

java -jar jenkins.war &

启动在指定端口可以

nohup java -jar jenkins.war --httpPort=8080 &

 

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

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

使用jenkins持续构建、部署SpringBoot项目

 

浏览器访问:http://localhost:8080/

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

http://192.168.28.128:8080

使用jenkins持续构建、部署SpringBoot项目

输入上面的密码

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

使用jenkins持续构建、部署SpringBoot项目

 

接下来是进入插件安装进度界面:

使用jenkins持续构建、部署SpringBoot项目

 

等待一段时间之后,插件安装完成,配置用户名密码:

使用jenkins持续构建、部署SpringBoot项目

四、 Jenkins 系统配置

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

1、设置 jdk(前面安装的java,但是显示不在 jenkins 里的错误,所以这里再手动安装)

使用jenkins持续构建、部署SpringBoot项目

 

2、设置 Git

使用jenkins持续构建、部署SpringBoot项目

 

3、设置 Maven

使用jenkins持续构建、部署SpringBoot项目

 

五、部署项目

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

使用jenkins持续构建、部署SpringBoot项目

下方选择构建一个maven项目,点击确定。

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

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

 

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

使用jenkins持续构建、部署SpringBoot项目

 

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

使用jenkins持续构建、部署SpringBoot项目

 

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

使用jenkins持续构建、部署SpringBoot项目

 

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

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

使用jenkins持续构建、部署SpringBoot项目

 

6、Post Steps 选择 Run only if build succeeds

使用jenkins持续构建、部署SpringBoot项目

 

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

使用jenkins持续构建、部署SpringBoot项目

 

其中shell命令中的 shell 脚本再第二章已经创建。

  1. cd /home/saysky/Jenkins-in
  2. sh stop.sh
  3. sh replace.sh
  4. BUILD_ID=dontKillMe nohup java -jar /home/saysky/workspace/helloworld-0.0.1-SNAPSHOT.jar &

保存

 

六、构建项目

点击左侧立即构建

使用jenkins持续构建、部署SpringBoot项目

 

左侧有构建项目状态,如果构建成功会执行我们之前填的 shell 命令,如 java -jar 命令

 

 

左侧有构建状态,蓝色表示成功,红色表示失败。
使用jenkins持续构建、部署SpringBoot项目

 

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

使用jenkins持续构建、部署SpringBoot项目

 

里面有从 gitee 拉去项目代码,Maven 打包项目,运行 jar 项目的日志

使用jenkins持续构建、部署SpringBoot项目 使用jenkins持续构建、部署SpringBoot项目 使用jenkins持续构建、部署SpringBoot项目

 

 

访问项目,成功!

使用jenkins持续构建、部署SpringBoot项目

 

以后我们频繁更新项目,部署项目就方便多了

  • 微信
  • 交流学习,有偿服务
  • weinxin
  • 博客/Java交流群
  • 资源分享,问题解决,技术交流。群号:590480292
  • weinxin
言曌

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: