1. Maven简介 Maven 是一个强大的项目管理和构建工具,主要用于Java项目的构建、依赖管理和项目信息管理。它通过一个项目对象模型(POM)来描述项目,并使用插件来执行构建任务。
  2. POM.xml文件 每个Maven项目都有一个pom.xml文件,它是项目的配置文件,包含了项目的依赖、构建配置、插件配置等信息。以下是pom.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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>my-project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <!-- 项目依赖 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <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>
</project>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  1. 常用的Maven生命周期 Maven 有三个主要的生命周期: clean:清理项目生成的文件。 default:构建项目的主要生命周期,包括编译、测试、打包等。 site:生成项目站点文档。
  2. 打包命令 Maven 提供了多种打包方式,常用的打包命令包括: mvn clean:清理目标目录中的所有生成结果。 mvn compile:编译项目的主源代码。 mvn test:运行项目的单元测试。 mvn package:将编译后的代码打包成可分发的格式,如JAR、WAR等。 mvn install:将打包后的文件安装到本地仓库,供其他项目使用。 mvn deploy:将打包后的文件部署到远程仓库,供其他开发人员或项目使用。
  3. 配置打包类型 在pom.xml文件中,可以通过标签指定项目的打包类型。常见的打包类型包括: jar:Java Archive,适用于普通的Java应用。 war:Web Application Archive,适用于Web应用。 pom:Parent POM,用于多模块项目。
  4. 示例:打包一个简单的Java项目 假设我们有一个简单的Java项目,项目结构如下:
my-project
├── src
│   ├── main
│   │   └── java
│   │       └── com
│   │           └── example
│   │               └── App.java
│   └── test
│       └── java
│           └── com
│               └── example
│                   └── AppTest.java
└── pom.xml
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.

App.java内容如下:

package com.example;

public class App {
    public static void main(String[] args) {
        System.out.println("Hello, Maven!");
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.

AppTest.java内容如下:

package com.example;

import org.junit.Test;
import static org.junit.Assert.*;

public class AppTest {
    @Test
    public void testApp() {
        assertTrue(true);
    }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.

pom.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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>my-project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <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>
</project>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  1. 执行打包命令 在项目根目录下执行以下命令进行打包:
mvn clean package
  • 1.

执行上述命令后,Maven 会执行以下步骤:

清理目标目录。

编译主源代码。

运行单元测试。

将编译后的代码打包成JAR文件。

打包完成后,可以在target目录下找到生成的JAR文件,例如my-project-1.0-SNAPSHOT.jar。

8. 总结

通过本文,我们了解了Maven的基本概念、pom.xml文件的结构、常用的Maven生命周期和打包命令。