From ccf7ed7411a6dfe1925dd3026a4451406121cd1e Mon Sep 17 00:00:00 2001 From: aipper Date: Sat, 1 Nov 2025 16:52:19 +0800 Subject: [PATCH] test --- Dockerfile.fast | 18 ++++++++--- Dockerfile.stable | 18 ++++++++--- debug-maven-build.sh | 76 ++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 10 deletions(-) create mode 100755 debug-maven-build.sh diff --git a/Dockerfile.fast b/Dockerfile.fast index 9723615..208d698 100644 --- a/Dockerfile.fast +++ b/Dockerfile.fast @@ -71,10 +71,18 @@ RUN chown -R root:root /root/.m2 COPY src ./src # 构建应用(使用国内镜像加速) -RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml +RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml -e -# 验证JAR文件是否生成 -RUN ls -la /build/target/point-strategy-*.jar || (echo "JAR文件生成失败" && exit 1) +# 检查构建结果 +RUN echo "=== 检查构建结果 ===" && \ + ls -la /build/target/ && \ + echo "=== 查找所有 JAR 文件 ===" && \ + find /build/target -name "*.jar" -type f && \ + echo "=== 查找原始 JAR 文件 ===" && \ + ls -la /build/target/point-strategy-*.jar /build/target/*.jar 2>/dev/null || echo "未找到预期的 JAR 文件" && \ + echo "=== 复制正确的 JAR 文件 ===" && \ + cp /build/target/*.jar /build/app.jar && \ + ls -la /build/app.jar && file /build/app.jar # ===== 运行阶段 ===== # 使用更小的Alpine镜像 @@ -119,8 +127,8 @@ RUN addgroup -g 1001 app \ # 设置工作目录 WORKDIR /app -# 从构建阶段复制jar文件 -COPY --from=builder /build/target/point-strategy-*.jar app.jar +# 从构建阶段复制jar文件(使用通用的复制方式) +COPY --from=builder /build/app.jar app.jar # 验证JAR文件是否正确复制 RUN ls -la app.jar && file app.jar diff --git a/Dockerfile.stable b/Dockerfile.stable index e2dc4d0..8e80c1b 100644 --- a/Dockerfile.stable +++ b/Dockerfile.stable @@ -74,10 +74,18 @@ RUN chown -R root:root /root/.m2 COPY src ./src # 构建应用(使用国内镜像加速) -RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml +RUN mvn clean package -DskipTests -B -s /root/.m2/settings.xml -e -# 验证JAR文件是否生成 -RUN ls -la /build/target/point-strategy-*.jar || (echo "JAR文件生成失败" && exit 1) +# 检查构建结果 +RUN echo "=== 检查构建结果 ===" && \ + ls -la /build/target/ && \ + echo "=== 查找所有 JAR 文件 ===" && \ + find /build/target -name "*.jar" -type f && \ + echo "=== 查找原始 JAR 文件 ===" && \ + ls -la /build/target/point-strategy-*.jar /build/target/*.jar 2>/dev/null || echo "未找到预期的 JAR 文件" && \ + echo "=== 复制正确的 JAR 文件 ===" && \ + cp /build/target/*.jar /build/app.jar && \ + ls -la /build/app.jar && file /build/app.jar # 显示JAR文件信息 RUN file /build/target/point-strategy-*.jar && ls -lh /build/target/point-strategy-*.jar @@ -144,8 +152,8 @@ RUN addgroup -g 1001 app \ # 设置工作目录 WORKDIR /app -# 从构建阶段复制jar文件 -COPY --from=builder /build/target/point-strategy-*.jar app.jar +# 从构建阶段复制jar文件(使用通用的复制方式) +COPY --from=builder /build/app.jar app.jar # 验证JAR文件是否正确复制 RUN ls -la app.jar && file app.jar diff --git a/debug-maven-build.sh b/debug-maven-build.sh new file mode 100755 index 0000000..b14f4be --- /dev/null +++ b/debug-maven-build.sh @@ -0,0 +1,76 @@ +#!/bin/bash + +echo "=== Maven 构建调试脚本 ===" +echo + +# 检查项目文件 +echo "🔍 检查项目文件:" +if [ -f "pom.xml" ]; then + echo "✓ pom.xml 存在" + echo " 项目信息:" + grep -E "||" pom.xml | head -3 +else + echo "❌ pom.xml 不存在" + exit 1 +fi + +if [ -d "src" ]; then + echo "✓ src 目录存在" + echo " 源码结构:" + find src -name "*.java" | wc -l | xargs echo " Java 文件数量:" +else + echo "❌ src 目录不存在" + exit 1 +fi + +if [ -d "src/main/lib" ]; then + echo "✓ lib 目录存在" + echo " JAR 文件:" + ls -la src/main/lib/*.jar 2>/dev/null | wc -l | xargs echo " JAR 文件数量:" +else + echo "❌ lib 目录不存在" +fi + +echo +echo "🧪 本地 Maven 测试构建:" + +# 创建临时目录进行测试构建 +mkdir -p temp-build +cd temp-build + +# 复制必要文件 +cp ../pom.xml . +cp -r ../src . +if [ -f "../settings.xml" ]; then + cp ../settings.xml . +fi + +echo "开始 Maven 构建测试..." +echo "这可能需要几分钟..." + +# 执行构建 +if mvn clean compile -B -s settings.xml 2>&1 | tee build.log; then + echo "✓ 编译成功" +else + echo "❌ 编译失败,查看 build.log" + tail -20 build.log + exit 1 +fi + +echo +echo "尝试打包..." +if mvn package -DskipTests -B -s settings.xml 2>&1 | tee package.log; then + echo "✓ 打包成功" + echo "生成的文件:" + ls -la target/*.jar 2>/dev/null || echo " 未找到 JAR 文件" + ls -la target/ | grep -E "\.(jar|war)$" || echo " 未找到任何归档文件" +else + echo "❌ 打包失败,查看 package.log" + tail -30 package.log + exit 1 +fi + +cd .. +echo +echo "=== 调试完成 ===" +echo "如果本地构建成功,问题可能在 Docker 环境中" \ No newline at end of file