一个可以用于构建和管理任何基于Java的项目的工具。使Java开发人员的日常工作变得更加轻松,并且有助于理解任何基于Java的项目。
maven 的主要目标是允许开发人员在最短的时间内理解开发工作的完整状态。
Apache Maven的安装是一个简单的过程,提取档案并将带有
mvn
命令的bin
文件夹添加到PATH
中。
https://maven.apache.org/download.cgi
解压下载文件到指定目录:
个人习惯:
windown:
D:/develop/maven/
mac:
~/develp/maven/
linux:
PATH=/usr/local/maven/apache-maven-3.6.3/bin:$PATH
windown:
1. 配置M2_HOME
M2_HOME=D:\develop\maven\apache-maven-3.6.0
2. 配置PATH
PATH=%M2_HOME%\bin
$ mvn -v
<!-- 本地仓库配置 -->
<localRepository>/path/to/local/repo</localRepository>
<!-- 中央仓库镜像配置 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 私服仓库配置(填写公司的maven仓库) -->
<profile>
<id>jdk18</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>
除了以上,还有两个生命周期:
clean:清理由先前版本创建的工件
site:生成此项目的站点文档
用于定位 maven 项目的参数
groupId:公司名称倒写
artifactId: 项目名称
version:版本号
<dependency>
<groupId>公司名称倒写</groupId>
<artifactId>项目名称</artifactId>
<version>版本号</version>
</dependency>
依赖依存关系:
1.就近原则
冲突解决:
1.指定版本号
2.排除依赖版本号
依赖范围:
compile:默认,会传播依赖
provided:具有此作用域的依赖项将添加到用于编译和测试的类路径中,而不是运行时类路径中。它不是可传递的。
runtime:此范围表明依赖关系不是编译所必需的,而是执行所必需的。Maven在运行时和测试类路径中包含具有此作用域的依赖项,但不包括编译类路径。
test:仅在测试编译和执行阶段可用。此范围不是可传递的
system:此范围类似于,provided除了必须提供显式包含它的JAR之外。该工件始终可用,并且不会在存储库中查找。
import:仅pom在本<dependencyManagement>节中的类型依赖项上支持此作用域。它指示将在指定的POM<dependencyManagement>部分中将依赖关系替换为有效的依赖关系列表。由于已替换它们,因此范围为的依赖项import实际上不会参与限制依赖项的可传递性。
父项目配置:
<modules>
<module>{子项目artifactId}</module>
</modules>
子项目配置:
<parent>
<artifactId>{父项目artifactId}</artifactId>
<groupId>{父项目groupId}</groupId>
<version>{父项目version}</version>
</parent>
原文:https://www.cnblogs.com/chen-jia-cheng/p/14587705.html