Maven 项目结构
POM、生命周期与依赖
Maven 项目结构 是 CoddyKit 上的免费 Java Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Java Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Java Academy 课程共包含 4 节课。
Maven 项目结构
Maven 是一种构建工具和依赖管理工具,围绕一个核心原则构建:约定优于配置。遵循其标准布局后,大多数内容几乎无需设置就能正常工作。本课将介绍目录布局、POM 和依赖管理。
标准目录布局
Maven 期望使用固定的结构:
src/main/java— 生产源代码。src/main/resources— 生产资源。src/test/java— 测试源代码。target/— 构建输出(生成)。
POM
Maven 项目的核心是 pom.xml — 即项目对象模型。它使用 XML 声明坐标、依赖、插件和构建设置。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>my-app</artifactId>
<version>1.0.0</version>
<packaging>jar</packaging>
</project>坐标:GAV
每个构件都由 groupId、artifactId 和版本(GAV)标识。这些坐标会唯一命名您的项目以及您引入的每个依赖。
声明依赖
依赖列在 <dependencies> 内部。Maven 会从 Maven 中央仓库等仓库下载这些依赖(以及它们的传递依赖),并存入本地缓存。
<dependencies>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
</dependencies>依赖作用域
作用域控制依赖何时位于类路径上:
- 编译 — 始终可用(默认)。
- 已提供 — 仅用于编译;运行时由容器提供。
- 运行时 — 用于运行时和测试,不用于编译。
- 测试 — 仅用于测试编译和执行。
传递依赖
如果 A 依赖 B,而 B 依赖 C,Maven 会自动为您提供 C — 这就是传递性。当版本发生冲突时,Maven 会根据依赖树中距离最近的定义进行解析。
构建生命周期
Maven 定义了一个有序的生命周期阶段序列。默认生命周期按顺序包含:validate、compile、test、package、verify、install、deploy。运行某个阶段时,也会运行之前的所有阶段。
常用命令
mvn compile— 编译主源代码。mvn test— 运行单元测试。mvn package— 将 JAR/WAR 构建到target/中。mvn install— 将构件复制到您的本地仓库,以供其他项目使用。
本地仓库
下载的构件会缓存在 ~/.m2/repository 中。后续构建会复用该缓存,而不是重新下载。mvn install 会将您自己的构件放在那里,以便同级项目依赖它。
多模块项目
包含 <packaging>pom</packaging> 的父 POM 可以列出子 <modules>。Maven 会按照依赖顺序构建这些模块,使大型系统能够从一个位置共享配置和版本。
快速检查
检验您对 Maven 结构的理解。
回顾
您已经学习了 Maven 的基础知识:
- 使用标准
src/main/java布局,遵循约定优于配置。 - POM 声明 GAV 坐标、依赖和插件。
- 作用域(编译、已提供、运行时、测试)控制类路径可见性。
- 依赖具有传递性;冲突根据距离最近的定义进行解析。
- 有序的生命周期意味着运行某个阶段时会运行之前的所有阶段。
常见问题解答
「Maven 项目结构」课时是免费的吗?
是的 — 「Maven 项目结构」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Java Academy 课程的其余内容,请升级到 CoddyKit PRO。 Java Academy 课程共包含 4 节课。
「Maven 项目结构」这节课中我会学到什么?
POM、生命周期与依赖 你通过在浏览器中直接运行的动手代码来练习 Java Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Java Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Java Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「Maven 项目结构」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Java Academy 课中编写并运行代码吗?
能。每节 Java Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Maven 项目结构
- Maven 插件与目标
- Gradle 基础
- 选择构建工具