前言

主流的开发模式都是采用前后端分离的方式,我们作为coder在功能开发初期需要不断的迭代代码与前端进行联调,提供在容器中最新代码,虽然可以通过在编译器中打完包后在放到容器运行,但是显然这种方式是既不方便的,那么能不能呢使用更加便捷的方式来构建发布程序呢?

 正文

JENKINS

 Jenkins是一个开源的、可扩展的持续集成、交付、部署的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。

  • 持续集成指的是,频繁地(一天多次)将代码集成到主干。将软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误。
  • 持续交付指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。
  • 持续部署是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。

 使用jenkins + SVN  + maven 来构建

一、安装jenkins 2.361.1

官方下载地址:https://www.jenkins.io/download/

官网提供多种下载方式,推荐下载war包(jenkins.war)

安装jenkins必要的运行环境

   1、安装java17

         jenkins 官网说明后续版本将只支持java11和java17,更推荐使用17,安装配置不做赘述

   2、安装maven3.8x

         maven 的安装配置也很简单,同样不做赘述 

   3、安装启动jenkins

         将下载好的jenkins.war 包上传到你的服务器(如果是本地请忽略)/usr/local/jenkins

    目录下,使用下面命令启动

         nohup java -jar jenkins.war &

二、配置jenkins服务

打开浏览器,输入IP:8080进入web配置管理页(jenkins默认端口8080)

1、根据提示获得admin的初始密码

2、安装推荐插件,第一个为默认安装,第二个为手动。推荐直接选择默认安装

 

2、配置一个用户

 三、下载安装svn、ssh插件

 按照下图方式,分别安装下面三个插件

  • Publish Over SSh (通过ssh方式远程连接服务器)
  • Subversion (svn连接插件)
  • Deploy to container Plugin (将构建好的war包发布到远程WEB容器)

 

 

 可用插件里搜不到是因为我已经安装了;

 插件安装完成后需要重启jenkins服务

四、配置系统配置

Manage Jenkins → System Configuration → 系统配置

在系统配置中找到Publish Over SSH然后点击新增,这里增加的就是你的服务要部署的远程服务器

 点击高级设置远程服务器认证方式

 密码输入后直接点击 Test Configuration 测试ssh远程连接是否成功

 五、全局工具配置

Manage Jenkins → System Configuration → 全局工具配置

配置全局Maven

 

 配置全局JDK

 全局安全配置

 六、新建一个maven项目

新建item→构建一个maven项目 

七、项目配置

 General

 

 源码管理,选择svn

 

 

 构建触发器

  

build

 

 Post Steps

 

 构建后操作

 

 

 贴出简单的start.sh  和 stop.sh 脚本,注意远程执行java命令时需要全路径使用

start.sh 

#!/bin/bash
echo "server starting..."
cd /home/licc/testjenkins
nohup /usr/module/jdk1.8.0_181/bin/java -jar server-management-0.0.1-SNAPSHOT.jar 2>&1 &
echo "Start SUCCESS"

 stop.sh

#!/bin/bash
echo "server starting..."
cd /home/licc/testjenkins
nohup /usr/module/jdk1.8.0_181/bin/java -jar server-management-0.0.1-SNAPSHOT.jar 2>&1 &
echo "Start SUCCESS"
[root@localhost testjenkins]# cat stop.sh 
#!/bin/bash
echo "Stop Procedure : server-management-0.0.1-SNAPSHOT.jar"
pid=`ps -ef |grep java|grep server-management-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
echo 'old Procedure pid:'$pid
if [ -n "$pid" ]
 then
kill -9 $pid
 fi

完成以上配置就可以进行构建测试了,点击立即构建,查看控制台输出

 

 此时我们算是完成了一个springboot后台项目的自动发布,但需要手动触发,我们想要的结果是,当我更新代码提交svn服务器后,自动完成发布,重启操作,需要实现这个功能我们只需借助svn的钩子脚本就可以。

八、配置SVN 钩子脚本

SVN的钩子分为客户端和服务端,我们使用客户端来完成(本地源码位置),打开TortoiseSVN的设置,新增一个钩子脚本

 

 

 

 rebuild.bat 脚本如下,curl后面的地址就是我们第七步中构建触发器所配置的回调地址

#!/bin/bash
curl http://192.168.*.*:8080/job/servier_manage/build?token=token_manage

至此大功告成,以后我们每次提交完代码,都会自动打包并发布到远程服务器进程更新部署 nice 

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐