Nexus Blob Stores
在没有开始正文之前,先简单介绍一下nexus是如何存储各种类型的数据库的。
右边的“Blob Stores”菜单功能,可以为维护所有的Blob Store.下图就是创建“File”类型的Blob Store的菜单界面。
Blob Stores是Nexus中的一个关键组件,用于存储管理各种类型的二进制文件,包括但不限于构件、依赖、插件、镜像等。其主要作用包括:
-
数据存储:
Blob Stores负责持久化存储所有上传到Nexus的二进制文件。这些文件包括Maven仓库中的构件、Docker镜像、npm包等。 -
数据管理:
Blob Stores提供了对存储的二进制文件进行管理的功能,包括文件的上传、下载、删除和版本控制等。 -
数据备份和恢复:
Blob Stores支持数据的备份和恢复,确保数据的安全性和可靠性。 -
性能优化:
Blob Stores可以配置多种存储后端,如文件系统、云存储等,以满足不同的性能和扩展性需求。 -
存储管理:
Blob Stores允许管理员配置存储的容量、清理策略和存储位置等参数,以满足组织的存储管理需求
Nexus Blob Stores支持多种类型的存储后端,笔者创建时主要有以下类型:
File(文件存储): 将二进制文件存储在本地文件系统上,是最常见的存储类型之一。适用于单机部署或小规模部署场景。
S3(Amazon S3存储): 将二进制文件存储在Amazon S3云存储服务上,提供高可靠性和可扩展性。适用于大规模部署场景或需要弹性扩展的场景。
我们创建名字Maven的File类型的Blob Store。存储目录为/nexus-data/blobs/maven
.
存储目录可以随便制定,你可以启动Docker通过如下参数,映射nexus-data,也可以映射其他目录,看您爱好。当然了,迁移数据时可以随时拷贝走;如果不使用映射目录。使用docker cp
命令备份和迁移也是可以的。
-v /本地目录的绝对路径/nexus-data:/nexus-data
我们通过命令docker exec -it nexus /bin/sh
进入nexus的docker容器,可以查看具体文件信息,目录下各文件有什么作用,可以查阅相关资料。
创建Maven库
本章节介绍如何创建下面类中类型的仓库,基本可以满足平时开发的需要。
-
代理库 (PROXY)
代理远程仓库的仓库,它充当了本地和远程仓库之间的中间层,主要代理Central 仓库和Public 仓库。 -
本地开发库(HOSTED-SANPSHOT)
Snapshot 仓库用于存储项目的开发中版本,这些版本通常是处于开发阶段、尚未发布的版本。 -
本地发布库 (HOSTED-RELEASE)
Release 仓库用于存储项目的正式发布版本,这些版本是稳定的、经过测试的,并且是供最终用户使用的版本。 -
组合仓库 (GOUP)
Group Repository是一个虚拟的仓库,它可以包含多个其他类型的仓库,也可以认为是您自己的public库。
代理库 (PROXY)
因为我所在环境有网络问题,访问国外网站比较慢,所有我代理了阿里云云效的Maven,详细信息阿里云云效 Maven .
首先点击“Create repository”按钮
选择“Maven2(Proxy)”
然后填写代理信息,这里主要填写:Name
、Remote storerage
、Blob store
三个字段。Remote storerage
就是填写代理仓库的地址,这里填写https://maven.aliyun.com/repository/public
.
本地开发库(HOSTED-SANPSHOT)
本地开发库的类型为Maven2(hosted)
,版本策略(Version policy:)选择snapshot
,允许多次重复发布Allow redeploy
。
本地发布库 (HOSTED-RELEASE)
发布(Release)库和开发的主要区别是,版本策略(Version policy:)选择release
,不允许多次重复发布Disable redeploy
。当然您也可以设置成Allow redeploy
,但是需要开发人员主动删除本地的缓存的Maven库,Maven才会拉取最新的版本,snapshot版本不存在这个问题。所以不建议这里设置可以重复发布。
组合仓库 (GOUP)
组合仓库就是把代理仓库、本地开发仓库、本地发布库整合到一起,对外仅发布一个地址。版本策略(Version policy:)选择Mixed
,成员库选择本文创建的三个仓库,当然,您可以添加你自己需要的任何库。
创建完成后,点击创建的那条记录就可以查看仓库的地址:http://192.168.3.37:8081/repository/my-maven/
,您还可以通过点击Settings
按钮修改。
使用Maven库
配置Settings.xml
<mirror>
<id>nexus-proxy</id> <!-- 代理仓库 ID -->
<mirrorOf>*</mirrorOf> <!-- 要代理的仓库 -->
<url>http://192.168.3.37:8081/repository/my-maven/</url> <!-- 代理仓库地址 -->
</mirror>
作为开发人员只要按如下方式配置settings、xml就可以了。 元素可以填写一些特定的值或通配符模式,以匹配需要被代理的仓库。 这里*
匹配所有仓库,意味着所有的仓库请求都将被重定向到指定的代理仓库。
然后如下图所示执行mvn compile
命令,便可以到所有资源都是从组合仓库下载的。如nexus中浏览仓库信息,你会看依赖都被缓存起来了。
发布
可以使用mvn deploy
命令发布构件到制品库,首先需要在Settings.xml配置登录信息
配置
<servers>
<server>
<id>my-release</id> <!-- 仓库 ID -->
<username>admin</username> <!-- 仓库用户名 -->
<password>填写您的密码</password> <!-- 仓库密码 -->
</server>
<server>
<id>my-dev</id> <!-- 仓库 ID -->
<username>admin</username> <!-- 仓库用户名 -->
<password>填写您的密码</password> <!-- 仓库密码 -->
</server>
</servers>
然后在编辑项目的pom.xml
,添加仓库地址。
<distributionManagement>
<repository>
<id>my-release</id>
<url>http://192.168.3.37:8081/repository/my-release/</url>
</repository>
<snapshotRepository>
<id>my-dev</id>
<url>http://192.168.3.37:8081/repository/my-dev/</url>
</snapshotRepository>
</distributionManagement>
<repository>
元素用于配置 Release 版本构件的发布信息。<snapshotRepository>
元素用于配置 Snapshot 版本构件的发布信息.这两个配置的<id>
要和settings中<server>
节点的的<id>
一致。
Snapshot版本
如果pom中配置版本信息为Snapshot版本,构件会发布到my-dev库上,因为我们配置可以重复发布,则可以多次覆盖发布。
<version>0.0.1-SNAPSHOT</version>
从web界面中,可以浏览发布结果,如下图所示。本地拉取时会根据时间戳拉取罪行的版本
Releas版本
将版本号改为,再次执行mvn deploy
便可以将构件发布到my-release库上。
<version>0.0.1</version>
因为我们设置Release仓库是不可以覆盖发布的,如果再次执行发布命令,会得到如下的错信息。
最后查看一下my-release
仓库,可以看到正确地发布结果。
文章来源:https://www.toymoban.com/news/detail-845187.html
查看组合仓库,所有发布的内容也都在该仓库中。
文章来源地址https://www.toymoban.com/news/detail-845187.html
到了这里,关于Docker+nexus构建自己的制品库之(二)Maven仓库的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!