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

编程教程 > Jenkins (1986) 2024-12-10 11:38:05

继前面讲解了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已提前配置免密登录。
免密登录配置参考:


其他相关参考文章:


 


评论
User Image
提示:请评论与当前内容相关的回复,广告、推广或无关内容将被删除。

相关文章
继前面讲解了jenkin的安装Jenkins 2.319.1 LTS WAR文件安装方式 这里讲解下jenkin的基础部署流程
jenkins是devops神器,本篇文章介绍如何安装和使用jenkins部署Spring Boot项目jenkins搭建 部署分为三个步骤;第一步,jenkins安装第二步,插件安装和配置第三...
问题描述Jenkins pipeline 流水线 执行 sh命令/shell脚本遇到 exit code 1。主要是部分工具有特殊问题,例如grep工具,在找得
漏洞概况Jenkins有一个内置的命令行界面(CLI),可从脚本或shell环境访问Jenkins。Jenkins漏洞修复方案讲解
新装Jenkins安装插件全部失败【已解决】 切换到Jenkins的工作目录,一般是用户主目录下面的.jenkinscd ~.jenkins/updates#备
WAR文件 安装Jenkins 的 Web 应用程序存档 (WAR) 文件版本可以安装在任何运行 Jenkins 支持的 Java 版本的操作系统或平台上
问题描述直接安装的Jenkins,然后每次构建代码发现时间都和当前的时间不对,列表差8小时问题解决首先找到Jenkins的命令运行界面
Jenkins jdk8最后一个LTS长期支持版本   版本号: wget https://get.jenkins.io/war-stable/2.346.3/jenkins....
jenkins  pipeline 配置案例pipeline { agent any stages { stage('Stop Service') { ...
Gogs 端配置在gogs 仓库设置 菜单里面找到 管理WEB钩子在 添加新的 Web 钩子 这里类型选择Gogs选择后界面为:这里主要配置两个地方,一个是 推送地址 一个是 密钥文本 其中 推...
Publish over SSH 组件是远程部署用的比较多的一个组件,这里说下它的目录相关一、相对于用户目录 如果在Jenkins的 【系统管理-&gtl;系统配置】中,Remote Direc...