1 . 仓库简介

没有 Maven 时,项目用到的 .jar 文件通常需要拷贝到 /lib 目录,项目多了,拷贝的文件副本就多了,占用磁盘空间,且难于管理。Maven 使用一个称之为仓库的目录,根据构件的坐标统一存储这些构件的唯一副本,在项目中通过依赖声明,可以方便的引用构件。

maven是一种全新的项目构建方式,让我们的开发更加简单,高效。

Maven主要功能:

1.  依赖jar包,工程之间的依赖

2.  项目构建,实现项目的一步构建

3.  工程聚合、继承、依赖

Maven还可以管理项目的整个声明周期,包括编 译,构建,测试,发布,报告等等。目前Apache下绝大多数项目都已经采用Maven进行管理。而Maven本身还支持多种插件,可以方便更灵活的控制项目。

准备工作

Java开发环境(JDK)

maven下载地址: http://maven.apache.org/release-notes-all.html

 

安装

安装maven超级简单,总共分四步:

下载 Maven ,其实就是一个压缩包,解压一下

apache-maven-3.5.2-bin.zip是压缩包,解压到安装路径即可。

apache-maven-3.5.2-src.zip是maven源码。

 

为了您的方便,Maven以多种格式分发。只需选择一个现成的二进制发行归档文件并按照 安装说明进行操作。 如果您打算自己构建Maven,请使用源代码归档。

 

 

参考文档

maven pom上传仓库_maven pom上传仓库

  

 

2.配置环境变量:

M2_HOME = D:\maven\apache-maven-3.5.4

    在path变量末尾加入“%M2_HOME%\bin;`”。

    3.最后,验证是否安装成功

现在我们打开 cmd,输入:mvn –v

 

    我想您一定会看到一些信息, 恭喜您,Maven 安装成功!

在使用 Maven 之前,我们必须要了解一下 Maven 到底是怎样管理 jar 包的,这就是 Maven 仓库要干的活了。

2 . 仓库的布局

 构件都有唯一的坐标,Maven 根据坐标管理构件的存储。如以下对 spring-orm-3.2.0 的存储:

maven pom上传仓库_maven pom上传仓库_02

文件路径对应了:groupId/artifactId/version/artifactId-version.packaging

3 . 仓库的分类

  Maven 仓库分为本地仓库和远程仓库,寻找构件时,首先从本地仓库找,找不到则到远程仓库找,再找不到就报错;在远程仓库中找到了,就下载到本地仓库再使用。中央仓库是 Maven 核心自带的远程仓库,默认地址:http://repo1.maven.org/maven2。除了中央仓库,还有其它很多公共的远程仓库。私服是架设在本机或局域网中的一种特殊的远程仓库,通过私服可以方便的管理其它所有的外部远程仓库。

maven pom上传仓库_apache_03

3 . 1 . 本地仓库

  Maven 本地仓库默认地址为:${user.home}/.m2/repository。

maven pom上传仓库_apache_04

  通过修改 %MAVEN_HOME%/conf/settings.xml (或者:${user.home}/.m2/settings.xml,针对当前用户(推荐))配置文件可以更改本地仓库的位置。

 

3 . 2 . 中央仓库

  安装完 Maven ,本地仓库几乎是空的,这时需要从远程仓库下载所需构件。Maven 配置了一个默认的远程仓库,即中央仓库,找到 %MAVEN_HOME%/lib/maven-model-builder-3.2.1.jar,打开 org/apache/maven/model/pom-4.0.0.xml 超级POM:

maven pom上传仓库_maven_05

1

3 . 3 . 在项目中添加其他远程仓库

  当中央仓库找不到所需的构件时,我们可以配置 pom.xml ,添加其它的远程仓库。

<repositories>
     <repository>
          <id>Sonatype</id>
          <name>Sonatype Repository</name>
          <url>http://repository.sonatype.org/content/groups/public/</url>
          <layout>default</layout>
          <releases>
              <enabled>true</enabled>
          </releases>
         <snapshots>
             <enabled>false</enabled>
         </snapshots>
    </repository>
</repositories>

其中 id 必须唯一,若不唯一,如设置为 central 将覆盖中央仓库的配置。

3 . 4 . 镜像仓库

  镜像仓库可以理解为仓库的副本,从仓库中可以找到的构件,从镜像仓库中也可以找到。比如针对中央仓库 http://repo1.maven.org/maven2 ,在中国有它的镜像仓库,这样我们直接访问镜像仓库,更快更稳定。

<mirrors>

     <!--阿里云镜像仓库 -->
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>*</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror> 
     
  </mirrors>

其中,<mirrorOf> 指明了为哪个仓库配置镜像,可以使用通配符如:<mirrorOf>*</mirrorOf>,或者 <mirrorOf>repo1,repo2</mirrorOf> 等进行匹配。一旦配置了镜像,所有针对原仓库的访问将转到镜像仓库的访问,原仓库将不再能直接访问,即使镜像仓库不稳定或停用。在搭建私服的时候,我们通常为所有仓库设置镜像为私服地址,通过私服对所有仓库进行统一管理。

3 . 5 . 常用的仓库搜索地址

http://search.maven.org/

maven pom上传仓库_maven pom上传仓库_06

https://repository.sonatype.org/

maven pom上传仓库_远程仓库_07

http://mvnrepository.com/

maven pom上传仓库_远程仓库_08