maven的仓库

来源:互联网 发布:淘宝客服话术培训ppt 编辑:程序博客网 时间:2024/06/06 09:42

       Maven的仓库有三种类型:本地仓库、私服、中央仓库


       本地仓库:这个仓库就是我们自己电脑上的,仓库的位置就是我们安装配置maven时在settings.xml中配置的本地路径,这里存储了所有的jar包。


       私服:它比本地仓库的公用性强,项目组内的所有人可以从私服上下载项目的jar包,也可以将一些maven中央仓库中没有的jar上传到私服供大家使用。


       中央仓库:这个仓库需要在有网的条件下才能访问,当我们地址有多个可选如http://mvnrepository.com/;http://repo1.maven.org/maven2

      

       以上三个仓库作用顺序是这样的:当添加一个jar包依赖后,首先会从本地仓库中进行匹配查找,如果没有则到私服上匹配查找,如果私服上也不存在就会通过网络连接maven中央仓库进行匹配查找。找到后jar会被下载到私服上,然后被下载到本地仓库,最终被引入到项目中。同样的jar下次添加引用就可直接从本地仓库中找到,如果是其他用户就可以从私服上找到。


       本地仓库和中央仓库几乎不用我们管理,需要管理的是私服一般使用nenux进行私服的管理。

 

nenux安装——

         1、下载并且解压缩

         2、将bin路径添加到path环境变量下

         3、在dos窗口中输入nexus install 将nexus安装到windows的服务中,安装完成后,在服务列表可看到nenux

         4、dos窗口中输入nexus start启动服务 ,也可以直接在服务中右击启动。

         5、访问http://localhost:8081/nexus/,出现界面点击右上角登录,用户名admin,密码admin123

 nenux仓库介绍——

          登录以后如下操作


         可以从图中看到现有的仓库分为三类:hosted、proxy、group

         hosted本地仓库,通常我们会部署自己的构件到这一类型的仓库。


              ——3rd party: 用来保存第三方没有开源的jar,需要开发人员自行下载后上传到本库中。这些jar因涉及版权问题,maven中央仓库中没有,典型的oracle数据库的驱动包

        ——Releases:项目组内部的发布版本构件的仓库

        ——Snapshots:项目组内部的快照版本构件的仓库。

 

          proxy代理仓库,从远程中央仓库中寻找数据的仓库。所代理的仓库的地址在configuration的remotestorage location,下图以apache 的代理为例。


        ——Apache Snapshots: 用来代理ApacheMaven仓库中快照版本构件的仓库

        ——Central:用来代理maven中央仓库中发布版本构件的仓库

        ——CodehausSnapshots: 用来代理Codehaus Maven 仓库中快照版本构件的仓库

 

       ——代理仓库作用——:

             (1)作为仓库作用——可以把常用的jar包拷进去,这样客户端就可以从这里下载了。

             (2)作为代理的作用——客户端先从私服下载,若私服没有该jar,客户会通过互联网从中央库下载,同时私服也会将jar从中央库下载到私服,这样下次客户端就可以从私服的代理库中下载。


          group仓库组,用来合并多个hosted/proxy仓库。如下图public Repositories的Configuration标签页下Ordered Group Repositories包含了四个仓库:Releases、Snapshots、3rd party和Central。也就是说我们在pom.xml引用这个仓库组,其包含的仓库也被引用。

 

        

         以上所有类型的仓库我们走可以自己新增,按照自己的需求进行配置使用。

 

私服使用——

        默认所有的jar包都是从maven的中央仓库中下载的,如果网站出现问题无法访问,可以在父项目的pom文件中重新配置中央仓库的url地址,改变jar包的下载路径。格式如下:(URL应该为能够访问到网络中供下载jar 的网址)

 

        上图中的url地址也可以配置为我们私服上配置好的Public Repositories 的Repository Path,这样jar包就会先从私服上查找下载,如果没有再从中央仓库下载。

 

镜像——

        这样在pom中配置只修改了本项目中央仓库的url地址,如果想让所有项目的所有仓库被访问时都走我们配置好私服地址,可以在settings.xml中配置镜像。镜像生效同时在项目中配置的仓库地址都失效。

mirrorOf配置为 *,表示所有的仓库。URL地址为配置的私服的地址。

 

小结

       maven仓库,分清楚私服上仓库的类别,知道每一类的作用。知道如何配置私服地址。

1 0
原创粉丝点击