一、nexus是什么
nexus的全称是Nexus Repository Manager,是Sonatype公司的一个产品。它是一个强大的仓库管理器,极大地简化了内部仓库的维护和外部仓库的访问。
我们主要用它来搭建公司内部的maven私服。但是它的功能不仅仅是创建maven私有仓库这么简单,功能非常强大。Nexus 支持 WebDAV 与 LDAP 安全身份认证。
windows64 下载地址:https://pan.baidu.com/s/1HdA0re4jetJ3KuZZ5xkRsg?pwd=6666
提取码:6666
二、使用步骤
主要讲解在Windows下使用nexus作为私服。
1.怎么启动nexus
到nexus的安装目录的bin目录(例如:D:\soft\nexus-3.20.1-01-win64\nexus-3.20.1-01\bin)下,输入cmd命令行工具。输入nexus.exe /run nexus
启动成功
nexus的启动本质就是启动了一个jetty服务器。
2.怎么访问nexus管理页面
在启动完nexus服务器后,需要到浏览器输入http://localhost:8081进行访问。
可以进入这个页面
进入这个页面后,便可以点击右上角的 sign in 来登录。
在第一次登录时,会让你到配置文件中去找密码,配置文件位置会在提示中。
Your admin user password is located in
D:\soft\nexus-3.20.1-01-win64\sonatype-work\nexus3\admin.password on the server.
在输入账号(默认admin)和密码后,在首次登录成功后,需要重新设置密码和设置其他设置。
可以点击Browse来查看默认的仓库
3.私服仓库的分类
仓库分为三种
宿主仓库:hosted ,主要用来保存自主开发的资源或第三方资源,用来进行上传。
代理仓库:proxy , 代理连接中央仓库 ,帮助用户下载网络上的资源
仓库组:group ,为仓库编组简化下载操作, 为用户提供下载
总之用户可以自定义仓库组,让仓库组包含代理仓库或宿主仓库等仓库,最后让用户从仓库组中下载资源,如果仓库组中的宿主仓库和代理仓库没有,就去仓库组中的代理仓库连接中央仓库去下载资源。而上传资源,则必须指定固定的宿主仓库。
4.如何配置Maven
配置从私服下载资源,需要找到maven的setting.xml文件,
maven的配置文件settings.xml存在于两个地方:
1.安装的地方:${M2_HOME}/conf/settings.xml
2.用户的目录:${user.home}/.m2/settings.xml
像我的存在: D:\soft\apache-maven-3.6.3\conf 下,找到标签,再进行配置。
打开 settings.xml文件
然后可以注释掉之前所配置的中央仓库地址(如阿里云的镜像仓库)
重新配置一个mirror
然后来配置具体的server
<server>
<id>刚才配置的地址仓库组中具体的宿主仓库</id>
<privateKey>账号</privateKey>
<passphrase>密码</passphrase>
</server>
可以配置多个,表示具备向多个宿主仓库上传资源的权限。
对于如何告诉资源,要上传到哪个仓库,需要到maven项目中的pom.xml中来具体配置
<distributionManagement>
<repository>
<!--和maven/settings.xml中server中的id一致,表示使用该id对应的用户名和密码-->
<id>server中id</id>
<url>宿主仓库的具体url地址</url>
</repository>
<!--上传snapshot类型的,需要使用这个标签-->
<snapshotRepository>
<id>server中的id</id>
<!--如果jar的版本是snapshot版本,那么就上传到这个仓库,根据自己情况修改-->
<url>http://localhost:8081/repository/heima-snapshots/</url>
</snapshotRepository>
</distributionManagement>
注意上传的资源的版本类型需要和仓库要求的版本类型保持一致
snapshot版本的需要上传到snapshot的仓库中.
5.怎么查看仓库的类型和地址
查看仓库类型
对仓库具体配置,先进入设置
然后进入需要配置的仓库
对于代理仓库可以配置下它下载的中央仓库地址,例如改为阿里的云镜像仓库地址
对于仓库组
上方可以查看到仓库组的地址,下方可以设置仓库组所包含的具体仓库
6.怎么使用maven将资源上传到私服
方式一
使用maven声明周期中的rdeploy
方式二
使用命令 mvn deploy