3.2 KiB
3.2 KiB
历史记录:以下说明对应 2026-10-29 原始 UAT 构建及部署,当前仓库的构建入口和密钥配置请看根目录 README。
syly2 UAT 编译工具
目标主机:ubuntu@192.168.68.223。这些工具用于隔离的源码编译,不包含数据库初始化或应用发布步骤。
本次目录
- 工具链:
/home/ubuntu/.local/opt/syly2-build - Maven 专用仓库:
/home/ubuntu/.local/share/syly2-build/m2 - 构建记录:
/home/ubuntu/builds/syly2/20261029-01 - 编译副本:上述构建目录下的
source - 构建日志:上述构建目录下的
logs - 本地传输包、原始文件哈希清单及回收证据:项目
.local/uat-build/20261029-01
工具职责
prepare-toolchain.py:安装固定版本 Corretto 8.512.09.1 与 Maven 3.9.11,验证官方 SHA-256/SHA-512 校验值;只写入当前用户的专用目录,不修改系统 Java 或 shell 配置。install-private-libs.py RUN_DIRECTORY:将交接包中的 6 个旧 JAR 注册到专用 Maven 仓库,记录原文件哈希。JODConverter 使用原项目声明的坐标和交接包中的 JAR,其原嵌入坐标不同,未据此升级或替换组件。apply-compatibility.py RUN_DIRECTORY:校验原始文件哈希,备份并修改编译副本中的三个文件:POM 的 Windows bootclasspath 分号改为${path.separator},两个统计 Controller 各删除一条未使用的 JDK 内部类 import。保留原换行符,并输出完整compatibility.patch。pom-linux.patch单独展示第一项差异。run-build.sh RUN_DIRECTORY PHASE:在专用 JDK/仓库下执行clean package,限制 JVM 内存、降低 CPU 调度优先级并记录退出码;显式跳过测试编译及执行。verify-build.py RUN_DIRECTORY PHASE:校验构建退出码、WAR CRC、关键条目和 Java 字节码版本,核对源码差异,保存产物与哈希,并比较构建前后的共享 UAT 容器状态。需要构建目录中已有containers-before.json基线记录。
本次只打包外层工程的 pom.xml、src、jar,不带历史 target 或内层重复工程。传输包与展开后的 5,302 个文件均核验了 SHA-256。
重新编译当前 UAT 副本
ssh ubuntu@192.168.68.223 'bash /home/ubuntu/builds/syly2/20261029-01/scripts/run-build.sh /home/ubuntu/builds/syly2/20261029-01 repeat'
repeat 对应日志文件名;需要保留每次日志时请使用不同的阶段名。
仅使用编译工具链时:
source /home/ubuntu/.local/opt/syly2-build/env.sh
java -version
mvn -version
在新的构建目录复现
先建立当前用户所有、权限为 700 的独立目录,创建 source、logs、artifacts、scripts 子目录,复制并核验源码包、原始 source-manifest.json 与这些工具。然后执行:
python3 scripts/prepare-toolchain.py
python3 scripts/install-private-libs.py /absolute/path/to/build-run
python3 scripts/apply-compatibility.py /absolute/path/to/build-run
bash scripts/run-build.sh /absolute/path/to/build-run linux-build
源码包包含原有配置,构建目录、传输包和产物均应按受限资料管理。编译通过不代表应用启动、数据库恢复、JSP 运行或省级接口联调通过。