From 8a779a56ac0051a7d1ea0166b1f3706509381ea8 Mon Sep 17 00:00:00 2001 From: "n72595987@gmail.com" Date: Sat, 29 Nov 2025 22:00:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20Drone=20CI=20=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E5=A4=B1=E8=B4=A5=EF=BC=9A=E5=90=88=E5=B9=B6=E6=A1=86?= =?UTF-8?q?=E6=9E=B6=E5=92=8C=E9=A1=B9=E7=9B=AE=E7=BC=96=E8=AF=91=E6=AD=A5?= =?UTF-8?q?=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题原因: - 步骤1和步骤2在不同容器中执行 - Maven 本地仓库(~/.m2/repository)不共享 - 后端项目找不到已编译的 BladeX 框架依赖 - 导致 401 Unauthorized 错误(尝试从远程下载) 解决方案: - 将"编译框架依赖"和"编译后端项目"合并为一个步骤 - 在同一个 Maven 容器中顺序执行 - 框架编译后立即可用于后端项目编译 执行流程: 1. 克隆 martial-tool 框架代码 2. 编译框架并 install 到 Maven 本地仓库 3. 切换到后端项目目录 4. 编译后端项目(可使用本地 Maven 仓库中的框架) 优势: - Maven 本地仓库在同一容器中共享 - 无需访问远程私有仓库 - 构建更可靠和快速 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- .drone.yml | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/.drone.yml b/.drone.yml index ff7e602..c642da3 100644 --- a/.drone.yml +++ b/.drone.yml @@ -10,29 +10,24 @@ trigger: - push steps: - # 步骤1:克隆并编译 BladeX 框架 - - name: 编译框架依赖 + # 步骤1:克隆并编译 BladeX 框架,然后编译后端项目 + - name: 编译完整项目 image: maven:3.9-eclipse-temurin-17 commands: - echo "克隆 BladeX 框架代码..." - cd /drone/src/.. - git clone https://git.waypeak.work/martial/martial-tool.git || echo "已存在,跳过克隆" - - ls -la - echo "开始编译 BladeX 框架..." - cd martial-tool - mvn clean install -DskipTests -q - - echo "✅ BladeX 框架编译完成" - - # 步骤2:编译后端项目 - - name: 编译后端项目 - image: maven:3.9-eclipse-temurin-17 - commands: + - echo "✅ BladeX 框架编译完成,已安装到 Maven 本地仓库" - echo "开始编译后端项目..." + - cd /drone/src - mvn clean package -DskipTests -Dmaven.test.skip=true - ls -lh target/blade-api.jar - echo "✅ 后端项目编译完成" - # 步骤3:传输 JAR 文件到服务器 + # 步骤2:传输 JAR 文件到服务器 - name: 传输构建产物 image: appleboy/drone-scp settings: @@ -46,7 +41,7 @@ steps: - target/blade-api.jar strip_components: 1 - # 步骤4:重启后端服务 + # 步骤3:重启后端服务 - name: 部署到生产环境 image: appleboy/drone-ssh settings: @@ -61,7 +56,7 @@ steps: - systemctl status martial-backend --no-pager - echo "✅ 后端部署完成" - # 步骤5:健康检查 + # 步骤4:健康检查 - name: 健康检查 image: curlimages/curl:latest commands: