Z
ZHANK
实战进阶

Maven 项目构建

了解项目结构、pom.xml 坐标、依赖管理、生命周期

Maven 快速上手

Maven 是 Java 项目的事实标准构建工具,管理依赖、编译、打包。

学完本章你将: 掌握项目结构、pom.xml、依赖管理。


项目结构

my-app/
├── pom.xml              # 项目配置
└── src/
    ├── main/java/       # 源码
    │   └── com/example/
    │       └── App.java
    └── test/java/       # 测试
        └── com/example/
            └── AppTest.java

pom.xml

xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0">
    <modelVersion>4.0.0</modelVersion>

    <!-- 项目坐标 -->
    <groupId>com.example</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>21</maven.compiler.source>
        <maven.compiler.target>21</maven.compiler.target>
    </properties>

    <!-- 依赖 -->
    <dependencies>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>33.0.0-jre</version>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter</artifactId>
            <version>5.10.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

常用命令

bash
# 编译
mvn compile

# 运行测试
mvn test

# 打包(JAR)
mvn package

# 安装到本地仓库
mvn install

# 清理构建产物
mvn clean

# 一条龙
mvn clean compile test package

依赖管理

xml
<!-- 依赖范围 -->
<scope>compile</scope>   <!-- 默认:编译、测试、运行都可用 -->
<scope>test</scope>      <!-- 仅测试可用 -->
<scope>runtime</scope>   <!-- 仅运行时可用 -->
<scope>provided</scope>  <!-- 编译和测试,运行时不打包 -->

<!-- 排除传递依赖 -->
<exclusions>
    <exclusion>
        <groupId>old-library</groupId>
        <artifactId>unwanted</artifactId>
    </exclusion>
</exclusions>