使用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 "流水线执行完成"
        }
    }
}
相关推荐
AC赳赳老秦8 小时前
使用OpenClaw tavily-search技能高效撰写工作报告:以人工智能在医疗行业的应用为例
运维·人工智能·python·flask·自动化·deepseek·openclaw
逸Y 仙X8 小时前
文章八:ElasticSearch特殊数据字段类型解读
java·大数据·linux·运维·elasticsearch·搜索引擎
青木川崎8 小时前
设计模式之面试题
java·开发语言·设计模式
空空潍8 小时前
Java核心基础语法:从原理到实战,夯实Java开发基石
java·开发语言
jing-ya8 小时前
day 57 图论part9
java·开发语言·数据结构·算法·图论
huohuopro8 小时前
详解ThreadLocal的使用
java·开发语言·jvm
东离与糖宝8 小时前
微服务适配Java 26实战|GC优化+并发增强,线上稳了
java
BUG?不,是彩蛋!8 小时前
Java变量作用域与类型转换实战
java·开发语言
左左右右左右摇晃8 小时前
Java笔记 —— 泛型
java·笔记