赞
踩
目录
由于有些大公司网络环境往往很复杂,公司内部一般存在一个大的局域网,即内网环境,由于大公司的内网环境往往连不上外网,所以当maven私服库搭建在这种内网时往往访问不到外网下的中央仓库(例如阿里云镜像),导致获取不到对应的jar包而报错,因此只能选择手动上传jar包至私服库,本文适合内网下无法连上外网的情况
私服是架设在局域网的一种特殊的远程仓库,用于代理远程仓库及部署第三方构建。有了私服之后,maven会先请求私服库,若私服库存在,则直接下载到本地仓库;反之,maven会先从远程仓库下载至私服,再从私服下载至本地仓库,下面是一个简单的架构图:
一般比较常用的私服库为Sonatype Nexus
下载安装步骤省略,当我们进入Nexus仓库时会有如下画面:
点击上图左边菜单栏中的Repositories,即可显示如下图所示的仓库列表:
可以看到每个仓库后面均有个Type属性,下面则对该参数进行解析:
下面是一张更清晰的仓库组与仓库之间的关系图:
点击public库,如下图,我们可以看到其作为一个仓库组,管理着如下四个仓库,这也就意味着public包含了这四个库,一旦往3rd第三方库中上传了jar包,在public库中一样能看到,若想将某个仓库去除或增加仓库只需点击对应的箭头即可
前面讲到类型为hosted的为本地仓库,Nexus预置了三个本地仓库:Releases、Snapshots、3rd Party。下面分别介绍这三种仓库
前面啰嗦了这么多,也算是到本文重点了,这里所说的jar包并非是第三方jar包,而是因为私服库连不了外网,只能手动给其仓库上传自己开发所需的jar包,因此本文并不是采用mvn deploy的方式上传。一般来说可根据上传jar包的数量分为两种形式:单个上传和批量上传,如果库中已存在同版本jar包,或是已存在同版本pom文件而无该版本的jar包,再次上传均会覆盖。
单个上传jar包的好处是上传jar包的同时会直接帮你建好索引,该索引可类比于数据库的索引,当你下载该包时可快速定位并提供下载服务。单个上传jar包需在Nexus的管理界面进行操作,如下图,点击3rd party,并单击Artifact Upload开始上传jar包:
上传时需选择对应的GAV Definition,如果你只有单单的一个jar包,那就选择GAV方式;如果存在pom文件,那么使用pom文件的形式上传,可以省去一些手动的配置,一般在本地编译后即会存在pom文件及jar包,下图为上传前的某个jar包的详细信息:
采用GAV形式上传jar包:
1、编辑jar包的各必需信息,如下图圈红的都为必填信息,依照maven依赖的格式根据jar包实际信息定义即可,如下图
2、选择上面所定义信息的jar包,选择完Nexus私服则自动会解析其名称和格式,如下图
3、然点击上图中Add Artiface,将该jar包添加进去,此时原信息则会自动清空,如下图,然后上传即可,注意:这一步Add操作非常重要,否则直接点上传操作会出现jar包始终没有,只有pom文件
4、上传完之后在库中即能找到刚上传的dubbo包,如下图
5、同时你可以在库的索引中也能找到刚上传jar包所生成的索引文件,这里注意下,索引文件格式可以jar也可以是pom,如下图
采用pom形式上传jar包:
1、选择pom形式,然后上传该jar包的pom文件,如下图
2、同上面GAV形式的的2 3 4 5步骤,能在仓库和索引中看到即表明上传成功
这里需要进入安装Nexus的后台,win下通过xftp,mac下通过transmit(transmit使用方式:mac下类似xftp的远程文件传输的可视化工具Transmit)进入其第三方仓库路径,如:/home/nexus/sonatype-work/nexus/storage/thirdparty,然后将你本地已准备的一大堆jar包批量传进去即可,以防万一可以先对库做个备份。
这里需要注意的是,上传完jar包之后,Nexus并不会自动生成各jar包的索引,所以如果你有刚上传jar包的那些索引文件,可以一并上传到对应仓库的索引路径下,例如:/home/nexus/sonatype-work/nexus/indexer/thirdparty-ctx
否则索引没有导致下载jar包的时候速度可能会过慢,但并不会影响编译。关于这个索引文件如何拿到,其实老夫也不是很清楚,我了解的就是mvn deploy时会自动生成索引,以及联网下载和单个上传jar包都会生成,所以批量上传jar包时,可以顺带拷贝外网maven仓库下的索引文件一并上传,这是最好的解决方案。
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。