Maven私有仓库的搭建和使用

github地址
https://github.com/a18792721831/studyMaven.git
文章列表:
Maven最全知识
[INFO] Generating project in Batch mode
Maven项目的目录结构
Maven仓库解析
Maven pom.xml解析
MVN命令与生命周期
Maven私有仓库的搭建和使用
Maven依赖

私有仓库

私有服务器

image-20201031131350577

一方面可以加快依赖加载速度,另一方面,可以解决一些内部依赖的安全性。

搭建私有服务器有哪些解决方案:

  • Apache Archiva
  • JFrog Artifactory
  • Sonatype Nexus

私有服务器的架设

下载nexus.

Nexus官网文档下载与配置。

不过,得益于现在docker的发展,现在基本上常见的应用,都有对应的docker镜像。

所以,我们就不在重新搭建Nexus,而是直接启动最新的镜像。

打开docker-hub官网然后搜索nexus的镜像:

image-20201031132743851

各种启动的场景,都给出了相关的启动的命令和相关的示例配置

image-20201031132927536

所以,我们直接在服务器上启动一个容器:

image-20201031133251654

这是两个命令,在第一个命令创建成功的基础上执行第二个命令。

第一个命令将在容器内创建一个文件夹,地址在根目录下。

第二个命令将宿主机的data文件夹挂载到容器内,我们刚刚创建的容器内的文件夹内。

结果报错了,查看日志,发现我们参数传递错误:

image-20201031133926332

修改命令和参数,重新启动

image-20201031134428275

  1. 表示创建了一个docker管理的存储
  2. 在容器内使用刚刚创建的存储
  3. 刚刚创建的存储,对应容器内的目录,在宿主机上存储在/var/lib/docker/volumes

尝试访问:

image-20201031134135747

登录

image-20201031134151502

image-20201031134206697

我们使用自动生成的密码登录

image-20201031134810470

ok ,登录成功

image-20201031134857564

image-20201031134955370

私有服务器配置使用

仓库分为三种:proxy,group,hosted.

proxy代理仓库,group分组管理仓库,hosted本地发布仓库。

releases稳定版本发布

snapshots快照版本发布

我们创建一个仓库

BU26tP.gif
然后选择maven2类型的仓库proxy类型的

image-20201031140332544

我们选择使用用户名密码访问验证就行了,是一个代理仓库,目标是阿里云的仓库。

image-20201031140431175

其他两种仓库的创建方式类似。

image-20201031140653448

然后获取仓库的url地址,就可以使用了。

image-20201031142323987

在代码中指定依赖仓库

image-20201031142609038

配置发布仓库

image-20201031144239472

增加了依赖后,刷新maven,然后我们的私服就会从阿里云的仓库同步我们的依赖

image-20201031143251803

当然,发布我们自己的依赖,也是可以的。

发布之前,需要配置用户名和密码

image-20201031144037111

要注意,这里面的server的id需要和配置的发布仓库Id保持一致。

发布仓库和验证信息是通过id进行匹配的。

然后发布

image-20201031144310389

通过浏览器也能发现确实上传了

image-20201031144341157

但是却只是上传到了快照仓库,却没有上传到稳定仓库。

想上传到稳定版本,也非常的简单,只需要将我们的版本号中的快照修改为稳定,即可

image-20201031144620159

当我们的版本号从快照修改为稳定后,发布就会发布到稳定仓库中

image-20201031144659024

image-20201031144714974