使用Jenkins自动化部署spring-java项目+宝塔重启项目命令(2.528.2版本)

1、 插件市场安装Maven Integration

2、全局工具配置新增Maven

3、新建凭证

4、新建item

5、编辑内容


5、代码

bash 复制代码
pipeline {
    agent any
    
    tools {
        maven 'maven3.9.12'//之前安装maven的名称
    }
    environment {
        DEPLOY_SERVER = ''//ip地址
        DEPLOY_PORT = '22'//端口
        DEPLOY_USER = 'root'//账号
        DEPLOY_PASSWORD = '123456' // 密码
        TARGET_DIR = '/www/wwwroot/java'//部署的目录
        // 项目配置
        PROJECT_PACKAGE = '-Dmaven.test.skip=true -P dev'//Maven打包
        JAR_SOURCE_PATH = 'sa-admin/target/'// 本地JAR包所在的相对路径(相对于项目根目录)
        LOCAL_JAR_NAME = 'sa-admin-dev-3.0.0'// 本地生成的JAR包名称(不含.jar扩展名)
        // 宝塔项目名称
        BT_NAME = 'sa-admin-dev-3'// 宝塔项目名称
    }
    stages {
        stage('代码') {
            steps {
                git branch: '',//分支
                    url: '',//git地址
                    credentialsId: '96a5ad65-5728-47c8-ab12-1588ec7cb6b7'//凭证id
            }
        }
        
        stage('打包') {
            steps {
                sh '''
                    echo "开始打包..."
                    mvn clean package ${PROJECT_PACKAGE}
                    
                    echo "复制JAR文件..."
                    cp ${JAR_SOURCE_PATH}*.jar ./${LOCAL_JAR_NAME}.jar
                    
                    echo "文件大小:"
                    ls -lh ${LOCAL_JAR_NAME}.jar
                '''
            }
        }
        
        stage('构建上传') {
            steps {
                sh '''
                    sshpass -p ${DEPLOY_PASSWORD} scp -P ${DEPLOY_PORT} ${LOCAL_JAR_NAME}.jar ${DEPLOY_USER}@${DEPLOY_SERVER}:${TARGET_DIR}
                    
                '''
            }
        }
        stage('重启项目') {
            steps {
                sh '''
                    sshpass -p ${DEPLOY_PASSWORD} ssh -p ${DEPLOY_PORT} ${DEPLOY_USER}@${DEPLOY_SERVER} "cd ${TARGET_DIR} && java-service ${BT_NAME} restart"
                '''
            }
        }
    }
    
    post {
        success {
            echo '🎉 部署成功'
        }
        failure {
            echo '⚠️ 部署失败'
        }
        always {
            cleanWs()
            echo "流水线执行完成"
        }
    }
}
相关推荐
程序员夏洛2 小时前
TCP 是用来解决什么问题?
java·网络协议·http·https
y = xⁿ2 小时前
拆解cloud code记忆系统
java·人工智能·python·github
VisionDataLab2 小时前
机器视觉项目落地周期优化:一体化预标定方案,削减现场调试停机时长
自动化·视觉检测
轮子大叔3 小时前
Hibernate6.x详解
java
ClickHouseDB3 小时前
ClickHouse .NET 驱动程序新特性:从 1.0 到 1.3 的演进之路
java·前端·windows
qq_284274053 小时前
电动机控制与PLC入门:自耦减压启动、反接制动与速度继电器KS,及PLC诞生、定义、特点与分类(含考点)
笔记·学习·自动化·制造
流烟默3 小时前
MCP第 6 篇:Spring AI Alibaba 封装 MCP:注册中心、网关与企业治理
java·mcp封装
Light603 小时前
企业自建 AI 智能体,成本差 8 倍还是 46 倍?
java·人工智能·算法·知识图谱·rag·ai agent 上下文·token 成本
Wang's Blog3 小时前
Java 项目实战: 交友项目 - 阿里云 OSS 对象存储介绍
java·阿里云·交友