用途:在修改 SkyWalking 源码后重建发行分发包(dist tarball)与 OAP Docker 镜像,供端到端测试使用。核心概念:构建镜像分两步,先生成 dist tarball,再构建镜像;make docker.oap 仅以 tarball 为文件前置条件,若 tarball 已存在则直接复制并 docker buildx build,不会从源码重建,因此可能得到内含旧 jar 的镜像。
主要命令与行为: ./mvnw -pl <module> package 只重编该模块,不重建 tarball 与镜像。 ./mvnw -pl apm-dist -am package -Pbackend,dist 重建全部后端依赖与 dist,但不重建镜像。 make docker.oap 不重编源码、不重建 tarball(使用磁盘现有内容),只重建镜像。 make docker 触发完整链(init → build.all → docker.all)。
flatten:flatten 必须与 package 或 install 在同一目标链中执行,否则安装产物坐标会保留字面量 ${revision},下游模块(含 apm-dist)依赖图不一致。示例:./mvnw clean flatten:flatten package -Pbackend,dist -DskipTests
推荐用法:改动 OAP 源码后,用 make docker 走完整链;或仅后端改动时用 ./mvnw -pl apm-dist -am -o clean flatten:flatten package -Pbackend,dist -DskipTests -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true 后 make docker.oap。仅改 Dockerfile 或 entrypoint(docker/oap/*)时,单独 make docker.oap 即可。
验证:镜像时间戳不可信,需从容器取 jar 并 grep 修复引入的唯一字符串确认。
常见问题:先前 mvnw package 后仅 make docker.oap 会导致镜像用旧 jar;中途取消 make docker 会留下半成品 dist;buildx 卡住可杀掉重试。限制:资料未提供 SkyWalking 其他构建目标、平台要求或更多配置说明。