Jenkins Pipeline 提供了一种强大的方式来定义构建、测试和部署流程。
以下是使用 Jenkins Pipeline 构建和发布项目的完整指南。
1. 创建 Pipeline 项目
登录 Jenkins 控制台
点击 “新建item”
输入任务名称,选择 “流水线” 类型
点击 “确定”
2. 编辑流水线脚本
我们可以借助流水线语法,去生成脚本:
例如我们在构建完之后发送jar包到服务器并启动,如下:
复制生成接脚本粘贴到发送jar包的steps中
pipeline {
agent any
tools {
maven "maven"
}
stages {
stage('拉取代码') {
steps {
git branch:'master',url:"https://gitee.com/liuxiaoli2023/helloworld.git"
echo '拉取成功'
}
}
stage('构建') {
steps {
sh "mvn clean package"
echo '构建完成'
}
}
stage('发送jar包') {
steps {
sshPublisher(publishers: [sshPublisherDesc(configName: 'testServer', transfers: [sshTransfer(cleanRemote: false, excludes: '', execCommand: '''#!/bin/bash
APP_JAR="/root/opt/yourapp/*.jar"
LOG_FILE="/var/log/yourapp.log"
# 停止旧进程
if pkill -f "java.*$(basename $APP_JAR)"; then
echo "成功停止旧进程"
else
echo "没有找到运行中的进程"
fi
# 确认进程终止
for i in {1..5}; do
if pgrep -f "java.*$(basename $APP_JAR)" >/dev/null; then
sleep 1
else
break
fi
done
# 启动新实例
echo "nohup java -jar $APP_JAR > $LOG_FILE 2>&1 &" | at now
echo "已提交后台启动任务,使用以下命令检查:"
echo "tail -f $LOG_FILE"''', execTimeout: 120000, flatten: false, makeEmptyDirs: false, noDefaultExcludes: false, patternSeparator: '[, ]+', remoteDirectory: '/opt/yourapp', remoteDirectorySDF: false, removePrefix: 'target/', sourceFiles: '**/target/*.jar')], usePromotionTimestamp: false, useWorkspaceInPromotion: false, verbose: false)])
echo '发送完成'
}
}
}
}
保存代码,回到上一页选择“立即构建”
3.查看构建日志
我们可以通过Blue Ocean插件,查看每一步构建状态以及日志。
4. 查看项目启动情况
在云服务器中执行 jps 查看项目是否启动成功
4.4 访问接口
大功告成!!!