Apache Maven 是一个项目管理和构建自动化工具,主要用于 Java 项目的构建、依赖管理和文档生成。它通过定义项目的配置文件 pom.xml(Project Object Model),使开发者能够以声明式的方式描述他们的项目,从而简化了构建过程。
Maven 最重要的特性之一是它的插件系统,提供了丰富的功能来满足开发中各种需求,如编译代码、运行测试、打包和部署应用等。此外,它还支持多种项目类型,包括 Java Web 应用、单元测试等,并且可以集成持续集成工具(例如 Jenkins)以实现自动化构建。
安装 Maven
Linux 系统:
下载最新的 Maven 发行版:
wget https://downloads.apache.org/maven/maven-3/3.3.3/binaries/apache-maven-3.3.3-bin.tar.gz解压下载的文件:
tar -xzf apache-maven-3.3.3-bin.tar.gz mv apache-maven-3.3.3 /opt/maven设置环境变量(编辑
~/.bashrc或/etc/profile):export M2_HOME=/opt/maven export PATH=$M2_HOME/bin:$PATH source ~/.bashrc # 或者 source /etc/profile验证 Maven 是否安装成功:
mvn -v
Windows 系统:
访问官网下载页面并下载最新版的 Maven。
解压下载文件到一个目录,例如
C:\Program Files\Apache Software Foundation\apache-maven-3.3.3.将解压缩后的 Maven bin 目录添加到系统环境变量 Path 中,确保命令行可以识别 mvn 指令。
- 右键点击“此电脑”或“计算机”,选择属性 -> 高级系统设置 -> 环境变量
- 在用户变量或系统变量的 Path 中添加
C:\Program Files\Apache Software Foundation\apache-maven-3.3.3\bin
打开命令提示符并输入:
mvn -v
Maven 项目结构
一个标准的 Maven 项目包含以下几部分:
- pom.xml: 项目的配置文件,定义了构建过程中的所有元素。
- src/main/java: Java 源代码目录。
- src/main/resources: 存放项目的资源文件(如图片、数据库配置文件等)。
- src/test/java: 单元测试代码存放位置。
- src/test/resources: 测试阶段使用的资源文件。
基本命令
项目构建
mvn clean install # 清理并安装项目,即编译、运行测试和打包等所有步骤
单独执行某一步骤
编译源代码:
mvn compile执行单元测试:
mvn test生成 jar 文件:
mvn package
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>
<!-- 依赖管理,列出所需的所有库 -->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.12</version>
<scope>test</scope>
</dependency>
</dependencies>
<!-- 插件配置,用于自定义构建过程 -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3.0</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
插件配置
插件允许自定义 Maven 的构建生命周期,包括编译、测试、打包等。示例中已展示如何配置maven-compiler-plugin。
使用仓库管理器
为了提高依赖下载速度,建议设置本地和远程仓库地址:
<repositories>
<repository>
<id>central</id>
<url>https://repo.maven.apache.org/maven2/</url>
</repository>
<repository>
<id>nexus</id>
<url>http://your-nexus-server/repository/public-releases/</url>
</repository>
</repositories>
<distributionManagement>
<!-- 配置发布仓库 -->
<repository>
<id>internal.repo</id>
<name>Internal Repository</name>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots-repo</id>
<name>Snapshots Repository</name>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
