0Pricing
Java Academy · 课时

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 反馈 — 无需本地设置。

此课程中的所有课时

  1. Maven 项目结构
  2. Maven 插件与目标
  3. Gradle 基础
  4. 选择构建工具
← 返回 Java Academy