jenkins部署springboot项目运行脚本

本文介绍了一个用于部署和重启SpringBoot应用的Shell脚本,详细展示了如何使用该脚本来拷贝、更新和启动Java应用。脚本首先会杀死已存在的应用进程,然后将新的jar包复制到指定目录,并使用nohup命令后台运行应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

#!/bin/bash -ile
project=blog-2.0.1-SNAPSHOT.jar
pathName=blog
echo "拷贝文件"
rm -rf /opt/springboot/$project
cp  /var/lib/jenkins/workspace/$pathName/target/$project /opt/springboot/
echo "切换路径"
cd /opt/springboot/

pid=`ps -ef | grep $dir$project | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
   kill -9 $pid
   echo "杀死存在进程"
fi
BUILD_ID=dontKillMe 
echo "执行"
nohup java -jar $project --spring.profiles.active=prod &
echo "启动成功!"

 

 

### 使用Jenkins部署包含项目的Spring Boot应用程序 为了实现通过Jenkins部署包含项目的Spring Boot应用程序,可以遵循一系列配置和操作流程来设置持续集成/持续交付(CI/CD)管道。这不仅限于简单的构建过程,还包括自动化测试、打包以及最终的部署阶段。 #### 准备工作环境 确保安装并配置好必要的工具和服务,包括但不限于Git用于版本控制、Maven或Gradle作为构建工具、Docker(如果计划容器化应用),当然还有Jenkins本身及其插件如Git Plugin, Maven Integration plugin等[^1]。 #### 创建Jenkins Pipeline脚本 编写Jenkinsfile定义CI/CD流水线逻辑,该文件通常位于项目根目录下。对于一个典型的Spring Boot项目而言,此文件可能如下所示: ```groovy pipeline { agent any stages { stage('Checkout') { steps { git 'https://github.com/example/heroes-project.git' } } stage('Build') { steps { sh './mvnw clean package -DskipTests' // 假设使用的是Maven } } stage('Test') { steps { sh './mvnw test' } } stage('Deploy') { when { expression { return env.BRANCH_NAME ==~ /^(master|main)$/ } } steps { script { def server = Artifactory.newServer url: 'http://artifactory.example.com/artifactory', credentialsId: 'artifactory_creds' def uploadSpec = """{ "files": [ {"pattern": "target/*.jar", "target": "libs-release-local/com/example/heroes/"} ] }""" server.upload spec: uploadSpec // 或者直接执行部署命令到生产服务器 sshPut remote: myRemote, from: 'target/myapp.jar', into: '/opt/apps/' sshCommand remote: myRemote, command: 'sudo systemctl restart spring-boot-app.service' } } } } post { always { junit '**/target/surefire-reports/**/*.xml' archiveArtifacts artifacts: '**/target/*.jar', allowEmptyArchive: true } } } ``` 上述代码片段展示了如何创建一个多阶段的Jenkins pipeline,涵盖了从源码拉取到最后部署的过程,并且包含了基本的质量门控措施,比如运行单元测试和保存构建产物以便后续分析。 #### 自动触发机制 为了让整个流程更加高效流畅,在完成以上步骤之后还可以进一步配置自动触发条件。例如每当有新的提交推送到特定分支时就启动一次完整的build-deploy循环;或者当某个上游job成功完成后也能够触发展开当前的应用程序更新动作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值