私服是一种特殊的远程仓库,它代理广域网上的远程仓库,供局域网下的maven用户使用。
目前Nexus3的官方下载地址为
https://help.sonatype.com/repomanager3/product-information/download
,由于下载较慢(真的很慢),我们可以从其他途径下载其他用户的安装文件,这里不再赘述,笔者下载的版本为nexus-3.19.1-01-win64
安装并运行
下载完成之后为一个zip的安装包
这里我们解压该文件,进入到bin目录中
在该目录打开cmd,输入命令nexus.exe/run
即可启动服务,nexus的默认端口号为8081,也就是说访问地址为:localhost:8081,如果需要修改端口号,我们可以在etc/nexus-default.properties中进行修改
如果想以localhost:8081/nexus进行访问,可以修改该文件中的nexus-context-path为nexus-context-path=/nexus/
笔者这里将端口号改为了8082,访问路径添加了nexus,启动服务后页面如下
这里我已经登录了,默认的登录名称为admin,初始密码保存在nexus安装目录下的 sonatype-work 的 admin.password 文件中,打开复制即可,第一次登录之后需要重新设置密码
打开Browse标签可以看到各种内置仓库
私服中type的解释
从图片中我们看到type主要分为group、proxy和hosted三种类型
- group:是一个逻辑存储库,它由多个其他存储库组合而来。当需要从多个仓库中获取依赖时,可以将这些仓库组合成一个 Group 存储库,并将该 Group 存储库添加到项目的仓库列表中。这样,使用者只需配置一个仓库即可获得来自各个组成仓库的元件。
- proxy:是一个代理远程仓库的本地存储库。当第一次请求某个依赖时,Nexus 会从远程仓库自动下载该依赖,并在本地缓存一份副本。下次请求相同的依赖时,Nexus 将直接返回缓存中的副本,避免再次访问远程仓库。
- hosted:指本地托管的存储库。也就是说,该存储库是由 Nexus 托管的本地文件夹或数据库存储的。Hosted 存储库用于存储内部构件、发布本地开发或定制的 JAR 文件等。通常情况下,Hosted 存储库是 Maven 构件的生产环境。
修改私服依赖的默认存储位置
Nexus私服从配置的远程仓库中下载的依赖默认存储在安装路径下的sonatype-work\nexus3\blobs中,并且不是以jar文件存储,而是以.bytes文件存储的
如果你想修改默认存储位置,需要在web页面进行更改,如下图所示
完成后以后你新建仓库就可以选择存储位置了
配置maven从私服中下载构件
我们可以在maven的setting.xml中修改镜像的配置,注释掉你的aliyun镜像(如果有的话),然后添加如下镜像
<mirror>
<id>nexus</id>
<name>nexus maven</name>
<url>http://localhost:8082/nexus/repository/maven-public/</url>
<mirrorOf>*</mirrorOf>
</mirror>
该镜像代理对所有远程仓库的访问,也就是说,所有访问远程仓库请求都由私服处理。另外解释一下,我这里的URL是maven-public的仓库组的URL,该仓库组配置了多个Nexus的内置仓库,所以只需要配置这个URL即可访问私服中的多个仓库,当然你也可以一个一个配置,但是请注意mirrorOf标签的填写