2020年9月19日 yangjingying(rose)
搭建maven私人服务器
-
背景
- 回顾下maven的构建流程,如果没有私服,我们所需的所有jar包都需要通过maven的中央仓库或者第三方的maven仓库下载到本地,当一个公司或者一个团队所有人都重复的从maven仓库下载jar包,这样就加大了中央仓库的负载和浪费了外网的带宽,如果网速慢的话还会影响项目的进程。
-
简介
- 私服是在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载jar包时,先请求私服,私服上如果存在则下载到本地仓库。否则,私服直接请求外部的远程仓库,将jar包下载到私服,再提供给本地仓库下载。
-
安装
-
我们可以使用专门的 Maven 仓库管理软件来搭建私服,这里我们使用Nexus
-
下载地址:https://help.sonatype.com/repomanager2/download
-
Nexus 专业版是需要付费的,这里我们下载开源版 Nexus OSS,最新的是OSS3.x,我们选择稳定的版本2.x。
-
-
启动
- 在Win系统中,以管理员身份打开cmd,进入到bin目录,先执行nexus install命令,再执行nexus start。
- Unix系统可以直接开启终端,但不能直接使用nexus start,需要在
~/.zshrc
中export
安装文件的bin路径https://zhuanlan.zhihu.com/p/86450013
- 打开浏览器,访问http://localhost:8081/nexus
- 点击右上角Log in,使用用户名:admin,密码:admin123登录
Nexus私服
简介:介绍nexus服务器预置的仓库
-
类型介绍
- hosted:是本地仓库,用户可以把自己的一些jar包,发布到hosted中,比如公司的第二方库
- proxy,代理仓库,它们被用来代理远程的公共仓库,如maven中央仓库。不允许用户自己上传jar包,只能从中央仓库下载
- group,仓库组,用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可
- virtual,虚拟仓库基本废弃了。
-
预置仓库
- Central:该仓库代理Maven中央仓库,其策略为Release,因此只会下载和缓存中央仓库中的发布版本构件。
- Releases:这是一个策略为Release的宿主类型仓库,用来部署正式发布版本构件
- Snapshots:这是一个策略为Snapshot的宿主类型仓库,用来部署开发版本构件。
- 3rd party:这是一个策略为Release的宿主类型仓库,用来部署无法从maven中央仓库获得的第三方发布版本构件,比如IBM或者oracle的一些jar包(比如classe12.jar),由于受到商业版权的限制,不允许在中央仓库出现,如果想让这些包在私服上进行管理,就需要第三方的仓库。
- Public Repositories:一个组合仓库
在nexus建立仓库
- 建库,
Add
->Hosted Repository
- 填写仓库信息
Respository ID
仓库编号Repository NAME
仓库名称Repository Type
仓库类型Repository Policy
仓库策略Default Local Storage Location
仓库路径Deployment Policy
发布策略
- 然后选择
Public Repositories
,打开configuration
选项卡,将自己创建的仓库添加到group
,记得保存
- 误删仓库:
https://blog.csdn.net/weixin_34348111/article/details/93513623?utm_medium=distribute.pc_relevant.none-task-blog-title-1&spm=1001.2101.3001.4242
如何将项目发布到maven私服
settings.xml
<servers>
<server>
<id>xdclass</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
username
和password
也可以在左边栏目的Security中建立Users。
<mirrors>
<mirror>
<id>nexusMirror</id>
<mirrorOf>nexus,central</mirrorOf>
<name>local nexus</name>