使用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 "流水线执行完成"
        }
    }
}
相关推荐
顿哥GPT1 分钟前
ChatGPT Plus / Pro + Codex 深度实战指南(2026年9月5日):从模型能力对比到 Codex 自动化编程工作流全解析
人工智能·chatgpt·自动化
2601_962298275 分钟前
交易开拓者通常使用什么编程语言?这种语言如何帮助自动化交易?
java·c++·python·编程语言·自动化交易
秋名RG10 分钟前
Java IO 体系深度剖析:从流式编程到 JDK 21 高并发陷阱
java·开发语言
Java成神之路-18 分钟前
基于 Spring AI+MCP 协议实现大模型调用本地自定义工具
java·spring·springaialibaba
会编程的吕洞宾34 分钟前
Spring Boot多环境配置实战 配置文件加载顺序与切换不再翻车
java·后端
额鹅恶饿呃37 分钟前
随着CentOS官方停服的时间越来越久,大量仍在使用CentOS7的企业和运维从业者
java·python·算法·c#·ruby
秋名RG42 分钟前
Java 异常处理全攻略:从入门到实战(JDK 21 版)
java·开发语言
SQL-First布道者1 小时前
我为什么把 MyBatis 从项目中删了?
java·spring·tomcat·mybatis·mybatis plus·spring jdbc
公爵爱学习1 小时前
无人机多点导航笔记
java·前端·笔记
凯哥Java1 小时前
接口采集工具自动化验证文章(测试发布,可删除)
运维·自动化