文章目录
一、安装及配置
1、下载
- 到官网下载需要的版本:
http://maven.apache.org/download.cgi,直接解压到本地 - 注意:安装maven之前,必须先确保你的机器中已经安装了对应版本的JDK
对象 | 要求 |
---|---|
JDK | Maven 3.3 要求 JDK 1.7 或以上 Maven 3.2 要求 JDK 1.6 或以上 Maven 3.0/3.1 要求 JDK 1.5 或以上 |
磁盘 | Maven 自身安装需要大约 10 MB 空间。除此之外,额外的磁盘空间将用于你的本地 Maven 仓库。你本地仓库的大小取决于使用情况,但预期至少 500 MB |
2、配置环境变量
- 添加系统环境变量MAVEN_HOME,并加在Path中
- 在cmd输入mvn –-version,如果出现maven的版本信息,说明配置成功
3、Maven配置文件settings.xml
Maven有两个配置文件settings.xml。
这两个配置文件里的设置,对所有的pom文件都是有效的。
两个配置文件路径分别为:
- Maven安装目录中:$M2_HOME/conf/settings.xml
- 用户主目录中:${user.home}/.m2/settings.xml
两个配置文件都是可选的。如果两个文件都存在,则用户目录下的配置会覆盖Maven安装目录中的配置。
4、修改本地仓库的路径
从中央仓库下载的jar包,都会统一存放到本地仓库中。
默认的本地仓库地址是 ${user.home}/.m2
。通常需要修改成自定义的位置。
打开maven安装目录,打开conf目录下的setting.xml文件,修改其中的 <localRepository>
节点,设置成自己定义的目录即可。
二、Maven 仓库
在 Maven 中,仓库就是一个位置(place),例如目录,用来存储所有的工程 jar 文件、library jar 文件、插件或任何其他的工程指定的文件。
1、Maven 仓库有三种类型
- 本地(local)
- 中央(central)
- 远程(remote)
2、本地仓库
-
Maven 本地仓库是本地机器上的一个文件夹。它在第一次运行任何 maven 命令的时候创建。
-
当运行一次 Maven 构建后,Maven 将从中央仓库和远程仓库中下载所有依赖的 jar 文件到本地仓库路径中。后面再次构建时直接引用本地的依赖文件 ,避免了每次构建时都引用存放在远程机器上的依赖文件。
2.1 修改本地默认仓库路径
- Maven 本地仓库默认在
${user.home}/.m2/repository
%MAVEN_HOME%\conf\settings.xml
文件中修改<localRepository>
节点内容
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>
-->
- 默认
<localRepository>
节点是被注释的,需要先去掉注释,然后把其中的/path/to/local/repo
替换成自己指定的路径即可。
3、中央仓库
3.1 中央仓库概念
- Maven 中央仓库是由 Maven 社区提供的仓库,其中包含了大量常用的库。
- 它由 Maven 社区管理,不需要配置。
- 需要通过网络才能访问。
3.2 访问中央仓库
maven 社区提供了一个 URL:http://search.maven.org/#browse。
通过这个 URL 浏览中央仓库的内容,开发人员可以在中央仓库中搜索所有可以获取的代码库。
4、远程仓库
4.1 远程仓库的概念
如果 Maven 在中央仓库中也找不到依赖的库文件,它会停止构建过程并输出错误信息到控制台。
为避免这种情况,Maven 提供了远程仓库的概念,它是开发人员自己定制的仓库,包含了所需要的代码库或者其他工程中用到的 jar 文件。
4.2 定义远程仓库
-
在 pom.xml 中增加
<repository>
节点,在其中定义远程仓库的id
和url
。 -
然后在 pom.xml 中增加
<dependency>
节点,在其中声明所依赖的文件(在中央仓库中获取不到的)。
类似下面这样:
<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.companyname.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<dependencies>
<dependency> <!-- 声明依赖文件 -->
<groupId>com.companyname.common-lib</groupId>
<artifactId>common-lib</artifactId>
<version>1.0.0</version>
</dependency>
<dependencies>
<repositories>
<repository> <!-- 定义远程仓库 -->
<id>companyname.lib1</id>
<url>http://download.companyname.org/maven2/lib1</url>
</repository>
<repository>
<id>companyname.lib2</id>
<url>http://download.companyname.org/maven2/lib2</url>
</repository>
</repositories>
</project>
5、Maven 依赖搜索顺序
当我们执行 Maven 构建命令时,Maven 开始按照以下顺序查找依赖的库:
本地仓库local -> 中央仓库central -> 远程仓库remote
详细查找顺序:
- 1、搜索本地仓库,如果找不到,继续第 2 步,如果找到了则执行其他操作。
- 2、搜索中央仓库,如果找到了则下载到本地仓库中备用; 如果找不到,并且有一个或多个远程仓库已经设置,则执行第 3 步;如果远程仓库没有被设置,则执行第 4 步报错。
- 3、在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库备用,否则执行第 4 步报错。
- 4、Maven 将简单的停滞处理并抛出错误(无法找到依赖的文件)。