Apache Maven是一个专为Java项目设计的构建自动化工具,它通过"项目对象模型"(POM)来管理项目的编译、测试、打包和文档生成等全过程。简单来说,Maven就像一个智能的"项目管家",让开发者从繁琐的构建配置中解放出来,专注于代码本身。记得许多年前开发java项目,还要下载对应的jar包,然后手动导入到eclipse中,过程真的繁重无趣。

在没有Maven之前,Java项目构建面临诸多挑战:
Maven通过约定优于配置的原则,解决了这些问题,让构建过程变得简单、可复用和可预测。
1. 项目对象模型(POM)
Maven的核心是pom.xml文件,它是一个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-app</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13.2</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>POM不仅定义了项目的基本信息,还通过依赖管理自动处理项目间的依赖关系,避免了"依赖地狱"(dependency hell)问题。
2. 构建生命周期
Maven定义了标准的构建生命周期,包括:
每个生命周期阶段都有预定义的插件执行,例如mvn test会自动执行surefire插件运行测试,无需额外配置。

3. 依赖管理
Maven自动处理项目依赖,只需在POM中声明依赖,Maven会从中央仓库下载并处理传递依赖:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>Maven的依赖解析会自动处理依赖的传递性(transitive dependencies),例如如果你依赖A,而A依赖B,Maven会自动将B也加入到你的项目中。


第一步:下载Maven 3.9.11

第二步:解压Maven

配置环境变量
Windows系统
Mac/Linux系统
export MAVEN_HOME=/usr/local/apache-maven-3.9.11
export PATH=$PATH:$MAVEN_HOME/bin第四步:配置本地仓库
<localRepository>D:Devmaven-repo</localRepository>
第五步:配置阿里云镜像
在settings.xml中找到<mirrors>部分,添加:
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>配置阿里云镜像后,下载依赖的速度会快许多,尤其是国内开发者,再也不用忍受"下载到天荒地老"的痛苦了!

第六步:配置JDK版本(确保编译兼容性)
在settings.xml中找到<profiles>部分,添加:
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>如果你用的是Java 17,把1.8改成17即可。
之后在命令行执行mvn -v,就可以验证安装是否成功了!

Maven不仅仅是一个构建工具,它还拥有丰富的生态系统:
Apache Maven通过POM模型、标准化构建生命周期和强劲的依赖管理,让Java项目的构建变得简单、可重复和可维护。它不仅是构建工具,更是Java开发的"标准实践",几乎每个Java项目都离不开Maven。