构建过程手册 迭代2 - xiaochu-dev/online-shopping-group5 GitHub Wiki

在线购物系统 构建过程手册(迭代2 · Java版)

初稿:胡成溯(组长),2026-10-19;v2.0修订2026-10-20;本次v2.1于2026-10-22按671ae63同步。Python基线构建过程保留在构建过程手册。

1 获取当前源码

代码获取:当前仓库默认分支 main 仍为迭代1 Python版本。迭代2 Java代码和已合入的商品中心在 iter2-java。

git clone -b iter2-java https://github.com/xiaochu-dev/online-shopping-group5.git
cd online-shopping-group5

2 环境与配置

目标JDK17、Maven3.9+,运行java -version与mvn -v检查。仓库Wrapper配置下载Maven3.9.9;本次实际验证使用本机Maven3.9.11。已有Maven时,下文.\mvnw.cmd可替换为mvn。

文件 作用
pom.xml Java17编译目标、依赖、Surefire测试与Spring Boot打包插件
.mvn/wrapper/maven-wrapper.properties、mvnw、mvnw.cmd Maven Wrapper配置与启动脚本
src/main/resources/application.yml 端口、SQLite、会话、四份SQL加载顺序与上传请求上限
src/main/resources/schema/00-base.sql seller及种子卖家
src/main/resources/schema/01-buyer.sql buyer及查询索引
src/main/resources/schema/02-product.sql category、product、product_image
src/main/resources/schema/03-intent.sql intent及队列/历史索引

源码为auth、buyer、admin、product、portal与common模块。首次下载依赖需网络,SQLite不需要另装服务。

3 编译与测试

在含pom.xml的项目根目录执行:

.\mvnw.cmd compile
.\mvnw.cmd test

JDK25环境中本次使用的测试参数为:

mvn test '-DargLine=-Dnet.bytebuddy.experimental=true -Dfile.encoding=UTF-8'

该开关用于本机测试兼容,不表示已验证全部JDK25部署条件。中文路径若导致Wrapper启动失败,使用已安装Maven;若spring-boot:run插件报找不到主类,见部署手册-迭代2的classpath方法。

4 实际验证记录

已记录的完整回归执行于2026-10-21 23:19:83项,失败0、错误0、跳过0。环境为Windows、JDK25、Maven3.9.11,按Java17目标编译;JDK25测试使用Byte Buddy实验兼容开关。团队Java17环境尚待复跑,本次文档同步没有重跑业务测试。

测试类 用例数
AuthFlowTest 15
BuyerAuthTest 18
CommonLayerTest 6
MyOrdersFlowTest 3
PortalFlowTest 14
ProductCenterTest 14
ProductMigrationTest 2
SchemaIdempotencyTest 2
SellerTradeFlowTest 9
合计 83

报告目录为target/surefire-reports/。对应代码已随PR #1合入iter2-java,具体截图和边界见商品中心测试记录-迭代2。这里不使用旧稿39项或示意控制台输出作为当前证据。

5 交付构建

取得本次打包确认后,可执行:

.\mvnw.cmd clean package

正常生命周期会先编译和运行测试,再由Spring Boot插件生成target/online-shopping-group5.jar;运行时使用java -jar target/online-shopping-group5.jar。源码、数据库和上传目录分别管理。数据库中已有的演示数据必须另行备份,不能假定都在jar里。

本轮已执行编译、测试与源码启动,没有生成或核验交付JAR/ZIP。这些命令描述后续构建步骤,不能当作产物已经存在的证据。迭代2分支未提供Dockerfile,旧Python容器说明不适用于Java交付。

6 文档与部署入口

部署手册-迭代2、架构设计与数据库表结构-迭代2、数据库设计-迭代2。构建后仍需验证目标Java17环境、登录、分类发布与交易链路,记录实际结果。