构建过程手册 迭代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。
- 打开Java分支
- 直接下载Java分支ZIP(网页下载前也可先切换分支再点 Code → Download ZIP)
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环境、登录、分类发布与交易链路,记录实际结果。