问题:根 pom.xml 引用 viewsh-module-video 模块,
但 Dockerfile.deps 构建依赖镜像时未复制 video pom 文件,
导致 Maven 报错 "Child module does not exist"
修复:添加 video 模块的 pom 文件复制步骤
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
49 lines
2.9 KiB
Docker
49 lines
2.9 KiB
Docker
# ============================================
|
|
# Maven 依赖基础镜像
|
|
# 预下载所有依赖,供服务构建时复用
|
|
# ============================================
|
|
|
|
FROM maven:3.9-eclipse-temurin-17
|
|
|
|
WORKDIR /build
|
|
|
|
# 复制所有 pom 文件
|
|
COPY pom.xml .
|
|
COPY viewsh-dependencies/pom.xml viewsh-dependencies/
|
|
COPY viewsh-framework/pom.xml viewsh-framework/
|
|
COPY viewsh-gateway/pom.xml viewsh-gateway/
|
|
COPY viewsh-server/pom.xml viewsh-server/
|
|
COPY viewsh-module-system/pom.xml viewsh-module-system/
|
|
COPY viewsh-module-system/viewsh-module-system-api/pom.xml viewsh-module-system/viewsh-module-system-api/
|
|
COPY viewsh-module-system/viewsh-module-system-server/pom.xml viewsh-module-system/viewsh-module-system-server/
|
|
COPY viewsh-module-infra/pom.xml viewsh-module-infra/
|
|
COPY viewsh-module-infra/viewsh-module-infra-api/pom.xml viewsh-module-infra/viewsh-module-infra-api/
|
|
COPY viewsh-module-infra/viewsh-module-infra-server/pom.xml viewsh-module-infra/viewsh-module-infra-server/
|
|
COPY viewsh-module-iot/pom.xml viewsh-module-iot/
|
|
COPY viewsh-module-iot/viewsh-module-iot-core/pom.xml viewsh-module-iot/viewsh-module-iot-core/
|
|
COPY viewsh-module-iot/viewsh-module-iot-api/pom.xml viewsh-module-iot/viewsh-module-iot-api/
|
|
COPY viewsh-module-iot/viewsh-module-iot-server/pom.xml viewsh-module-iot/viewsh-module-iot-server/
|
|
COPY viewsh-module-iot/viewsh-module-iot-gateway/pom.xml viewsh-module-iot/viewsh-module-iot-gateway/
|
|
COPY viewsh-module-ops/pom.xml viewsh-module-ops/
|
|
COPY viewsh-module-ops/viewsh-module-ops-api/pom.xml viewsh-module-ops/viewsh-module-ops-api/
|
|
COPY viewsh-module-ops/viewsh-module-ops-biz/pom.xml viewsh-module-ops/viewsh-module-ops-biz/
|
|
COPY viewsh-module-ops/viewsh-module-environment-biz/pom.xml viewsh-module-ops/viewsh-module-environment-biz/
|
|
COPY viewsh-module-ops/viewsh-module-security-biz/pom.xml viewsh-module-ops/viewsh-module-security-biz/
|
|
COPY viewsh-module-ops/viewsh-module-facilities-biz/pom.xml viewsh-module-ops/viewsh-module-facilities-biz/
|
|
COPY viewsh-module-ops/viewsh-module-service-biz/pom.xml viewsh-module-ops/viewsh-module-service-biz/
|
|
COPY viewsh-module-ops/viewsh-module-ops-server/pom.xml viewsh-module-ops/viewsh-module-ops-server/
|
|
COPY viewsh-module-video/pom.xml viewsh-module-video/
|
|
COPY viewsh-module-video/viewsh-module-video-api/pom.xml viewsh-module-video/viewsh-module-video-api/
|
|
COPY viewsh-module-video/viewsh-module-video-server/pom.xml viewsh-module-video/viewsh-module-video-server/
|
|
|
|
# 下载所有依赖到本地仓库(部分依赖可能无法离线解析,允许失败)
|
|
RUN mvn dependency:go-offline -B || true
|
|
|
|
# 先单独复制 framework 和 dependencies 源码并预编译(变动频率低,缓存命中率高)
|
|
COPY viewsh-dependencies/ viewsh-dependencies/
|
|
COPY viewsh-framework/ viewsh-framework/
|
|
RUN mvn install -pl viewsh-dependencies,viewsh-framework -am -DskipTests -B -q
|
|
|
|
# 最后复制全部源码(此层之后的缓存会随源码变动而失效)
|
|
COPY . .
|