首页 > 代码库 > (四)Maven中的仓库

(四)Maven中的仓库

一、分类

  • maven的仓库只有两大类:

    •   1.本地仓库

    •   2.远程仓库,在远程仓库中又分成了3种:

      •   2.1 中央仓库

      •   2.2 私服

      •   2.3 其它公共库

二、本地仓库

  • 本地仓库,顾名思义,就是Maven在本地存储构件的地方。
  • 注:maven的本地仓库,在安装maven后并不会创建,它是在第一次执行maven命令的时候才被创建,maven本地仓库的默认位置:无论是Windows还是Linux,在用户的目录下都有一个.m2/repository/的仓库目录,这就是Maven仓库的默认位置
  • 如何更改maven默认的本地仓库的位置,修改maven的settings.xml文件中的localRepository标签值。
    <settings>  
        <localRepository>D:\maven_new_repository</localRepository>  
    </settings>  

 

 

三、中央仓库

  • 中央仓库是默认的远程仓库,maven在安装的时候,自带的就是中央仓库的配置

  • 技术分享

     

  • 案例:修改默认中央仓库,即下载依赖包不再从默认的中央仓库中下载(虽然更新快但是下载速度慢),只需修改工程的pom.xml文件即可。

<!-- 修改中央仓库 -->
<repositories>
    <repository>
    <!-- 指定仓库唯一id -->
        <id>resp</id> 
        <!-- 指定仓库名 -->
        <name>resp</name>
        <!-- 指定仓库地址 -->
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <!-- 设置仓库是否为默认仓库 -->
        <layout>default</layout>
        <!-- 设置是否可以从url对应的仓库中下载快照snapshots版本的依赖 -->
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <!-- 设置是否可以从url对应的仓库中下载稳定releases版本的依赖 -->
        <releases>
            <enabled>true</enabled>
        </releases>
    </repository>
</repositories>

<!-- 修改插件仓库 -->
<pluginRepositories>
    <pluginRepository>
        <id>pluginTest</id>
        <name>pluginTest</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <layout>default</layout>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
        <releases>
            <enabled>true</enabled>
        </releases>
    </pluginRepository>
</pluginRepositories>
  • 此时下载依赖会在http://maven.aliyun.com/nexus/content/groups/public/和默认中央仓库两个仓库同时下载,如果想要禁止默认中央仓库下载,可以将自己设置的仓库的id设置为中央仓库的id即<id>central</id>
  •  缺点:只针对当前工程,新建工程还是从默认中央仓库下载。

 

  • 案例二:通过修改镜像,修改所有工程的默认中央仓库

    •   修改maven的setting.xml文件
    <mirror>
            <id>mirrorId</id>
            <name>aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>*</mirrorOf>
        </mirror>
  •   其中 <mirrorOf>*</mirrorOf> 指对所有工程的所有仓库进行映像,即所有工程所有仓库都会无效,下载依赖时从镜像的url仓库下载。如果配置<mirrorOf>central</mirrorOf>则任何从默认中央仓库下载的依赖都会转到镜像仓库下载。

 

(四)Maven中的仓库