Skip to content

Maven

概述

Maven 是一个强大的项目管理和构建自动化工具,主要用于 Java 项目。它提供了一种标准化的方式来管理项目的构建、报告和文档。Maven 使用 XML 文件(pom.xml)来描述项目的结构和依赖关系。

安装 Maven

1. 下载 Maven

Maven 官方网站 下载最新版本的 Maven。

2. 解压缩

将下载的压缩包解压到你希望安装 Maven 的目录。

3. 配置环境变量

  • Windows

    1. 在系统环境变量中添加 MAVEN_HOME,指向 Maven 的安装目录。
    2. %MAVEN_HOME%\bin 添加到 PATH 环境变量中。
  • Linux/Mac: 在 ~/.bashrc~/.bash_profile 文件中添加以下行:

    bash
    export MAVEN_HOME=/path/to/maven
    export PATH=$MAVEN_HOME/bin:$PATH

    然后运行 source ~/.bashrcsource ~/.bash_profile 使更改生效。

4. 验证安装

在命令行中运行以下命令,检查 Maven 是否安装成功:

bash
mvn -v

创建 Maven 项目

使用 Maven 创建新项目非常简单,可以使用以下命令:

bash
mvn archetype:generate -DgroupId=com.example -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
  • groupId:项目的组 ID,通常是反向域名。
  • artifactId:项目的名称。
  • archetypeArtifactId:项目模板,这里使用的是快速启动模板。
  • interactiveMode:设置为 false 以非交互模式创建项目。

项目结构

Maven 创建的项目结构通常如下:

my-app
|-- pom.xml
`-- src
    |-- main
    |   `-- java
    |       `-- com
    |           `-- example
    |               `-- App.java
    `-- test
        `-- java
            `-- com
                `-- example
                    `-- AppTest.java
  • pom.xml:项目对象模型文件,定义项目的基本信息和依赖。
  • src/main/java:存放项目的源代码。
  • src/test/java:存放项目的测试代码。

依赖管理

pom.xml 文件中,可以定义项目的依赖。以下是一个示例:

xml
<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
</dependencies>
  • groupId:依赖的组 ID。
  • artifactId:依赖的名称。
  • version:依赖的版本。
  • scope:依赖的作用域(如 compiletest 等)。

常用命令

  • 编译项目

    bash
    mvn compile
  • 运行测试

    bash
    mvn test
  • 打包项目

    bash
    mvn package
  • 安装到本地仓库

    bash
    mvn install
  • 清理项目

    bash
    mvn clean

常用插件

Maven 提供了许多插件来扩展其功能,以下是一些常用插件:

  • Maven Compiler Plugin:用于编译 Java 源代码。
  • Maven Surefire Plugin:用于运行单元测试。
  • Maven Jar Plugin:用于创建 JAR 文件。
  • Maven Site Plugin:用于生成项目网站。

示例:配置 Maven Compiler Plugin

pom.xml 中添加以下配置:

xml
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
    </plugins>
</build>