Maven从入门到精通(三)

我们已经了解了Maven的环境搭建以及POM的主要标签及作用,接下来我们要讲解一下Maven的仓库以及jar下载的一个过程

首先我们要明白仓库及以下一些概念

1、仓库:
    在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。
Maven核心程序仅仅定义了自动化构建项目的生命周期,但具体的构建工作是由特定的构件完成的。而且为了提高构建的效率和构件复用,maven把所有的构件统一存储在某一个位置,这个位置就叫做仓库。

2、仓库的分类:

根据仓库存储的位置,把仓库分为本地仓库和远程仓库。远程仓库分为远程中央仓库、中央仓库的镜像以及私服。

话不多说,先上一张网上的Maven仓库图

Maven我们添加相关依赖后,首先去本地仓库查找相关依赖,那么我们本地仓库地址在哪里呢?

我们的本地仓库配置就在我们maven的安装目录下 conf ----settings.xml  仓库默认地址

 <!-- localRepository
   | The path to the local repository maven will use to store artifacts.
   |
   | Default: ${user.home}/.m2/repository
  <localRepository>/path/to/local/repo</localRepository>

 默认在根盘符下

我们可以修改仓库的地址,当然不修改也是可以的,只是放在C盘个人始终感觉别扭.

我们已经知道本地仓库的地址所在了,本地仓库里面是我们项目所依赖的jar包,全部会在本地仓库备份

因为maven的官方中央仓库因为在国外,所以我们下载依赖构建速度比较慢,推荐使用国内架设的远程仓库,下面列举一下常用仓库地址

3、常用的远程仓库:

<!--中央仓库-->
<id>central</id>
<name>Central Repository</name>
<url>https://repo.maven.apache.org/maven2</url>
<!--maven官方运维的2号仓库--> <id>repo2</id> <name>Mirror from Maven Repo2</name>
<url>http://repo2.maven.org/maven2/</url>
<!--阿里云的远程仓库--> <id>nexus-aliyun</id> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <!--maven在UK架设的仓库--> <id>ui</id> <name>Mirror from UK</name> <url>http://uk.maven.org/maven2/</url> <!--JBoss的仓库--> <id>jboss-public-repository-group</id> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url>

 

4、使用profile配置远程仓库:

<profile>
           <id>dev</id>
           <repositories>  
              <repository>
                  <id>nexus-aliyun</id>
                  <name>Nexus aliyun</name>
                  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                  <layout>default</layout>
                  <snapshots>
                      <enabled>false</enabled>
                  </snapshots>
              </repository>
           </repositories>
           <pluginRepositories>
              <pluginRepository>
                 <id>nexus-aliyun</id>
                  <name>Nexus aliyun</name>
                  <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
                  <layout>default</layout>
                  <snapshots>
                      <enabled>false</enabled>
                  </snapshots>
                  <releases>
                      <updatePolicy>never</updatePolicy>
                  </releases>
              </pluginRepository>
          </pluginRepositories>

</profile>
<activeProfiles>
    <activeProfile>dev</activeProfile>
</activeProfiles>

 5、镜像:用来覆盖一个远程库、或者使所有的POM都使用唯一的一个远程库,可以使用settings.xml中的mirror配置。
<!--覆盖maven自带的中央仓库-->

<mirror>  
        <id>UK</id>  
        <name>UK Central</name>  
        <url>http://uk.maven.org/maven2</url>  
        <mirrorOf>central</mirrorOf>  
      </mirror>
<!--配置所有仓库的镜像-->
<mirror>  
        <id>UK</id>  
        <name>UK Central</name>  
        <url>http://uk.maven.org/maven2</url>  
        <mirrorOf>*</mirrorOf>  
</mirror>

maven对仓库的选择:  
  在Maven构建项目的过程中如果需要某些构件,首先会到Maven的本地仓库中查找,如果找到则可以直接使用;如果找不到,它会自动连接外网,到远程中央仓库中查找;如果远程仓库中能找到,则先把所需要的插件下载到本地仓库,然后再使用,并且下次再用到相同的插件就可以直接使用本地仓库的;如果没有外网或者远程仓库中也找不到,则构建失败。

 下一章我们将会介绍Maven核心命令及相关作用,敬请期待!

posted @ 2019-11-11 13:35  蚂蚁style  阅读(267)  评论(0编辑  收藏  举报