jenkins 流水线打包/发布spring boot项目传到其他服务器

教程分享 > Java教程 > Spring (2340) 2024-08-07 11:05:25

继前面讲解了jenkin的安装Jenkins 2.319.1 LTS WAR文件安装方式 这里讲解下jenkin的基础部署流程。

以开发环境为例,通过jenkins流水线的方式 git拉取代码、maven编译spring boot项目、scp将项目传到其他服务器进行docker环境的发布。

Jenkins git认证凭据添加

首先配置git的访问认证。可以配置用户名+密码方式也可以配置用户名+公钥方式,jenkins的git插件提供了多种认证模式

添加全局凭据 

添加全局凭据
添加git认证的全局凭据

jenkins 创建流水线任务

 

创建流水线任务
创建流水线任务

通过Hello Word demo流水线构建基础的流水线脚本结构
流水线脚本结构

Jenkins 流水线脚本基础讲解

顶层pipeline

pipeline {


}

pipeline下面包含一个stages,stages下面包含多个stage也就是步骤,stage下面又包含多个steps子步骤(也就是具体的执行命令或脚本),如下:

pipeline {
    stages {
        stage('获取代码') {
            steps {
                echo 'Get Code'
            }
        }
        stage('编译代码') {
            steps {
                echo 'mvn package'
            }
        }
        stage('发布程序') {
            steps {
                echo '复制项目到指定服务器或位置'
                echo '执行项目启动命令'
            }
        }
    }
}

Jenkins git流水线脚


流水线的脚本语法可以通过语法的生产界面生成,点击流水线下面的流水线语法

流水线语法生成
流水线语法生成

跳转到流水线的生产界面:

流水线生成节目
流水线生成界面


git语法生成

git语法生成
git语法生成

1.仓库地址这里是随便找的一个项目;
2.凭据是之前创建的git认证凭据
3.生成脚本后复制脚本到前面的steps里面


现在的流水线脚本如下:

pipeline {
    agent any

    stages {
        stage('Get Code') {
            steps {
                git credentialsId: 'e509e172-56ef-4fcf-af87-2cc883671c56', url: 'https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter.git'
            }
        }
    }
}


jenkins 编译spring boot 项目

项目的编译与平时执行maven编译命令一样,

sh "mvn clean && mvn package -Dmaven.test.skip=true "

将编译命令带入到流水线脚本得到如下:

pipeline {
    agent any

    stages {
        stage('Get Code') {
            steps {
                git credentialsId: 'e509e172-56ef-4fcf-af87-2cc883671c56', url: 'https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter.git'
            }
        }
        stage('Maven Build') {
            steps {
                sh "mvn clean && mvn package -Dmaven.test.skip=true "
            }
        }
    }
}

jenkins 发布项目

1.发布项目到本机

pipeline {
    agent any

    stages {
        stage('Get Code') {
            steps {
                git credentialsId: 'e509e172-56ef-4fcf-af87-2cc883671c56', url: 'https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter.git'
            }
        }
        stage('Maven Build') {
            steps {
                sh "mvn clean && mvn package -Dmaven.test.skip=true "
            }
        }
        stage('Deploy') {
            steps {
                sh "cp -f target/app-name.jar /docker/app-name/app-name.jar"
                sh "cp -f target/docker-compose.yml /docker/app-name/docker-compose.yml"
                sh "docker-compose build;docker-compose down;docker-compose up -d"
            }
        }
    }
}

2.发布到其他服务器

pipeline {
    agent any

    stages {
        stage('Get Code') {
            steps {
                git credentialsId: 'e509e172-56ef-4fcf-af87-2cc883671c56', url: 'https://gitee.com/baomidou/dynamic-datasource-spring-boot-starter.git'
            }
        }
        stage('Maven Build') {
            steps {
                sh "mvn clean && mvn package -Dmaven.test.skip=true "
            }
        }
        stage('Deploy') {
            steps {
                sh "scp -r target/app-name.jar root@dev-server-1:/docker/app-name/app-name.jar"
                sh "scp -r target/docker-compose.yml root@dev-server-1:/docker/app-name/docker-compose.yml"
                sh "ssh root@dev-server-1 docker-compose build;docker-compose down;docker-compose up -d"
            }
        }
    }
}

注意:开发服务器 dev-server-1已提前配置免密登录。
免密登录配置参考:


其他相关参考文章:


 

https://www.leftso.com/article/966.html

相关文章
继前面讲解了jenkin的安装Jenkins 2.319.1 LTS WAR文件安装方式 这里讲解下jenkin的基础部署流程
jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目jenkins搭建 部署分为三个步骤;第一步,jenkins安装第二步,插件安装和配置第三...
Gogs 端配置在gogs 仓库设置 菜单里面找到 管理WEB钩子在 添加新的 Web 钩子 这里类型选择Gogs选择后界面为:这里主要配置两个地方,一个是 推送地址 一个是 密钥文本 其中 推...
引言    通过之前spring boot mybatis 整合的讲解: spring boot mybaties整合  (spring boot mybaties 整合 基于Java注解方式写...
Spring Boot 2.0,Spring框架的Spring Boot 中的Spring Boot Actuator变化讲解。并且了解如何在Spring Boot 2.0中使用Actuator...
Spring Boot 2.0 绑定properties属性资源文件 Spring Boot 2.0 读取properties配置文件值 Spring Boot 2.0获取properties配...
spring boot入门,spring boot是一个崭新的spring框架分支项目,本文讲解其属性配置相关
spring boot 1.5整合redis实现spring的缓存框架,spring boot,redis
spring boot是一个崭新的spring框架分支项目,本文讲解基本的数据库配置
Spring Boot validation整合hibernate validator实现数据验证,Spring Boot validation使用说明,Spring Boot validat...
spring boot mybatis 整合使用讲解介绍,spring boot与MyBatis的使用讲解介绍。spring boot mybatis xml mapper方式的入门和通过一个简...
spring boot又一个spring框架的经典项目,本文讲解spring boot入门的环境配置以及第一个项目,Spring Boot 入门教程
Spring Boot 2.0 Redis整合,通过spring boot 2.0整合Redis作为spring缓存框架的实现。
spring boot 导入本地jar包spring boot maven 打war包时候导入本地jar包
spring boot框架整合MyBatis数据库暂时选用MySQL