《Java 编程入门》2.2 Maven 与标准目录结构
把 library 从单文件 javac 推进到 Maven 工程:解释 groupId、artifactId、version 与标准目录结构,逐项拆开最小 pom.xml 里的 release 与编码配置,再用 mvn compile 验证 target/classes 的产物,并列出目录放错、POM 缺失、编码未设三类常见故障。
tag
把 library 从单文件 javac 推进到 Maven 工程:解释 groupId、artifactId、version 与标准目录结构,逐项拆开最小 pom.xml 里的 release 与编码配置,再用 mvn compile 验证 target/classes 的产物,并列出目录放错、POM 缺失、编码未设三类常见故障。
本节把 TaskAPI 从「一个文件」升级成「一个项目」:执行 go mod init taskapi 并逐行读懂 go.mod,讲清模块路径的选法与 go.sum 何时才出现;再搭出 cmd/ 与 internal/ 目录骨架,用 go build ./...、go list 验证结构,最后给出一份可直接照抄的初始化清单与 .gitignore。
本节把前面散落的语言知识收拢成一个能交付的项目骨架:先对比按类型、按功能、按层三种组织方式的代价,再讲清分层的本质是依赖方向单向,并用一棵完整目录树演示 domain、application、infrastructure、interfaces 各层怎么摆。随后区分 DTO、领域模型与视图模型三类类型,用接口把依赖倒置落地,最后给出循环依赖、跨层直连、上帝模块三种腐化信号的识别与修复。
本节读懂 demo 项目:给出标准 Maven 目录树并解释各目录职责,逐行拆解启动类与 @SpringBootApplication、SpringApplication.run;重点讲包扫描规则,说明启动类为何必须放根包;再讲 application.properties 与 yml 的位置与优先级、.gitignore 建议,以及两种运行方式的差别。
单文件脚本撑不起真实项目。本节先讲一个标准 Python 项目该长什么样,对比 src 布局与平铺布局的取舍,说明 tests、README、.gitignore 各放什么;再拆开 pyproject.toml 的三段结构(build-system、project、tool),讲清 requires-python 的含义;最后贴出 uv init 实际生成的文件内容,让你照着就能搭起项目骨架。
介绍 Phaser TypeScript 项目中 Scene、服务层、配置、事件、测试入口和模块边界的组织方式,避免小游戏越写越散。
讨论 Godot 客户端项目目录、资源归属、命名规则、模块边界和团队协作。