Skip to content

Maven

Maven 是 Java 项目中常用的构建和依赖管理工具,主要用于统一管理项目依赖、编译、测试、打包、发布以及多模块项目构建。

查看版本

确认本机是否已安装 Maven,并查看 Java 运行环境信息。

写法:

bash
mvn -v

效果/说明:

text
Apache Maven 3.9.6
Java version: 17.0.10

如果命令不可用,需要先安装 Maven,并配置 MAVEN_HOMEPATH

常见目录结构

Maven 默认遵循约定优于配置的项目结构。

text
project
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   └── resources
    └── test
        ├── java
        └── resources

说明:

  • pom.xml:项目配置文件,声明依赖、插件、构建方式等。
  • src/main/java:业务代码目录。
  • src/main/resources:业务资源文件目录。
  • src/test/java:测试代码目录。
  • src/test/resources:测试资源文件目录。

pom.xml 基础配置

pom.xml 是 Maven 项目的核心配置文件。

写法:

xml
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>
</project>

效果/说明:

  • groupId:组织或公司标识,通常使用反向域名。
  • artifactId:项目或模块名称。
  • version:项目版本号。
  • packaging:打包类型,常见值有 jarwarpom

添加依赖

依赖统一声明在 dependencies 中。

写法:

xml
<dependencies>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.14.0</version>
    </dependency>
</dependencies>

效果/说明:

执行构建时,Maven 会自动从远程仓库下载依赖,并加入项目 classpath。

编译项目

编译 src/main/java 下的主代码。

写法:

bash
mvn compile

效果/说明:

编译结果默认输出到 target/classes

运行测试

执行测试代码。

写法:

bash
mvn test

效果/说明:

Maven 会编译并运行 src/test/java 下的测试,测试报告默认生成在 target/surefire-reports

打包项目

将项目打包成 jarwar

写法:

bash
mvn package

效果/说明:

打包结果默认生成在 target 目录。

text
target/demo-1.0.0.jar

清理构建产物

删除上一次构建生成的 target 目录。

写法:

bash
mvn clean

效果/说明:

常用于重新构建前清理旧产物。

清理并打包

常见的完整构建命令。

写法:

bash
mvn clean package

效果/说明:

先清理旧产物,再编译、测试并打包。

跳过测试

构建时跳过测试执行。

写法:

bash
mvn clean package -DskipTests

效果/说明:

会编译测试代码,但不执行测试。

如果希望连测试代码也不编译,可以使用:

bash
mvn clean package -Dmaven.test.skip=true

安装到本地仓库

将当前项目构建产物安装到本地 Maven 仓库。

写法:

bash
mvn clean install

效果/说明:

默认安装到 ~/.m2/repository,供本机其他 Maven 项目引用。

查看依赖树

排查依赖来源、版本冲突和传递依赖。

写法:

bash
mvn dependency:tree

效果/说明:

text
com.example:demo:jar:1.0.0
\- org.apache.commons:commons-lang3:jar:3.14.0:compile

指定 Profile

Profile 常用于区分开发、测试、生产等不同环境配置。

pom.xml 写法:

xml
<profiles>
    <profile>
        <id>dev</id>
        <properties>
            <env>dev</env>
        </properties>
    </profile>
</profiles>

命令写法:

bash
mvn clean package -Pdev

效果/说明:

-Pdev 表示启用 id 为 dev 的 Profile。

多模块项目

父工程通常使用 pom 打包,并通过 modules 管理子模块。

写法:

xml
<packaging>pom</packaging>

<modules>
    <module>common</module>
    <module>service</module>
    <module>web</module>
</modules>

效果/说明:

在父工程目录执行 Maven 命令时,会按模块依赖关系构建所有子模块。

常用命令速查

命令说明
mvn -v查看 Maven 版本
mvn compile编译主代码
mvn test运行测试
mvn package打包项目
mvn clean清理构建产物
mvn clean package清理并打包
mvn clean install安装到本地仓库
mvn dependency:tree查看依赖树
mvn clean package -DskipTests跳过测试执行并打包
mvn clean package -Pdev使用指定 Profile 构建
二维码手机扫码查看