Docker+nexus构建自己的制品库之(二)Maven仓库的使用

这篇具有很好参考价值的文章主要介绍了Docker+nexus构建自己的制品库之(二)Maven仓库的使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Nexus Blob Stores

在没有开始正文之前,先简单介绍一下nexus是如何存储各种类型的数据库的。

右边的“Blob Stores”菜单功能,可以为维护所有的Blob Store.下图就是创建“File”类型的Blob Store的菜单界面。
nexus blob store,docker,maven,容器

Blob Stores是Nexus中的一个关键组件,用于存储管理各种类型的二进制文件,包括但不限于构件、依赖、插件、镜像等。其主要作用包括:

  • 数据存储: Blob Stores负责持久化存储所有上传到Nexus的二进制文件。这些文件包括Maven仓库中的构件、Docker镜像、npm包等。

  • 数据管理: Blob Stores提供了对存储的二进制文件进行管理的功能,包括文件的上传、下载、删除和版本控制等。

  • 数据备份和恢复: Blob Stores支持数据的备份和恢复,确保数据的安全性和可靠性。

  • 性能优化: Blob Stores可以配置多种存储后端,如文件系统、云存储等,以满足不同的性能和扩展性需求。

  • 存储管理: Blob Stores允许管理员配置存储的容量、清理策略和存储位置等参数,以满足组织的存储管理需求

nexus blob store,docker,maven,容器

Nexus Blob Stores支持多种类型的存储后端,笔者创建时主要有以下类型:

File(文件存储): 将二进制文件存储在本地文件系统上,是最常见的存储类型之一。适用于单机部署或小规模部署场景。

S3(Amazon S3存储): 将二进制文件存储在Amazon S3云存储服务上,提供高可靠性和可扩展性。适用于大规模部署场景或需要弹性扩展的场景。

我们创建名字Maven的File类型的Blob Store。存储目录为/nexus-data/blobs/maven.

nexus blob store,docker,maven,容器

存储目录可以随便制定,你可以启动Docker通过如下参数,映射nexus-data,也可以映射其他目录,看您爱好。当然了,迁移数据时可以随时拷贝走;如果不使用映射目录。使用docker cp命令备份和迁移也是可以的。

-v /本地目录的绝对路径/nexus-data:/nexus-data 

我们通过命令docker exec -it nexus /bin/sh进入nexus的docker容器,可以查看具体文件信息,目录下各文件有什么作用,可以查阅相关资料。
nexus blob store,docker,maven,容器

创建Maven库

本章节介绍如何创建下面类中类型的仓库,基本可以满足平时开发的需要。

  • 代理库 (PROXY) 代理远程仓库的仓库,它充当了本地和远程仓库之间的中间层,主要代理Central 仓库和Public 仓库。

  • 本地开发库(HOSTED-SANPSHOT) Snapshot 仓库用于存储项目的开发中版本,这些版本通常是处于开发阶段、尚未发布的版本。

  • 本地发布库 (HOSTED-RELEASE) Release 仓库用于存储项目的正式发布版本,这些版本是稳定的、经过测试的,并且是供最终用户使用的版本。

  • 组合仓库 (GOUP) Group Repository是一个虚拟的仓库,它可以包含多个其他类型的仓库,也可以认为是您自己的public库。

代理库 (PROXY)

因为我所在环境有网络问题,访问国外网站比较慢,所有我代理了阿里云云效的Maven,详细信息阿里云云效 Maven .

首先点击“Create repository”按钮

nexus blob store,docker,maven,容器

选择“Maven2(Proxy)”

nexus blob store,docker,maven,容器

然后填写代理信息,这里主要填写:NameRemote storerageBlob store三个字段。Remote storerage就是填写代理仓库的地址,这里填写https://maven.aliyun.com/repository/public.
nexus blob store,docker,maven,容器

nexus blob store,docker,maven,容器

nexus blob store,docker,maven,容器

本地开发库(HOSTED-SANPSHOT)

本地开发库的类型为Maven2(hosted),版本策略(Version policy:)选择snapshot,允许多次重复发布Allow redeploy
nexus blob store,docker,maven,容器

本地发布库 (HOSTED-RELEASE)

发布(Release)库和开发的主要区别是,版本策略(Version policy:)选择release,不允许多次重复发布Disable redeploy。当然您也可以设置成Allow redeploy,但是需要开发人员主动删除本地的缓存的Maven库,Maven才会拉取最新的版本,snapshot版本不存在这个问题。所以不建议这里设置可以重复发布。

nexus blob store,docker,maven,容器

组合仓库 (GOUP)

组合仓库就是把代理仓库、本地开发仓库、本地发布库整合到一起,对外仅发布一个地址。版本策略(Version policy:)选择Mixed,成员库选择本文创建的三个仓库,当然,您可以添加你自己需要的任何库。

nexus blob store,docker,maven,容器

创建完成后,点击创建的那条记录就可以查看仓库的地址:http://192.168.3.37:8081/repository/my-maven/,您还可以通过点击Settings按钮修改。

nexus blob store,docker,maven,容器

使用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就可以了。 元素可以填写一些特定的值或通配符模式,以匹配需要被代理的仓库。 这里*匹配所有仓库,意味着所有的仓库请求都将被重定向到指定的代理仓库。
nexus blob store,docker,maven,容器

然后如下图所示执行mvn compile命令,便可以到所有资源都是从组合仓库下载的。如nexus中浏览仓库信息,你会看依赖都被缓存起来了。
nexus blob store,docker,maven,容器

发布

可以使用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>

nexus blob store,docker,maven,容器

从web界面中,可以浏览发布结果,如下图所示。本地拉取时会根据时间戳拉取罪行的版本

nexus blob store,docker,maven,容器

Releas版本

将版本号改为,再次执行mvn deploy便可以将构件发布到my-release库上。

	<version>0.0.1</version>

nexus blob store,docker,maven,容器

因为我们设置Release仓库是不可以覆盖发布的,如果再次执行发布命令,会得到如下的错信息。

nexus blob store,docker,maven,容器

最后查看一下my-release仓库,可以看到正确地发布结果。
nexus blob store,docker,maven,容器

查看组合仓库,所有发布的内容也都在该仓库中。
nexus blob store,docker,maven,容器文章来源地址https://www.toymoban.com/news/detail-845187.html

到了这里,关于Docker+nexus构建自己的制品库之(二)Maven仓库的使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Nexus私服,使用Maven上传到仓库时提示xx/metadata.xml响应码 502

            宝塔、使用宝塔环境安装的Nginx、使用Nginx转发到Nexus。     Nginx转发时,Nexus响应错误码为404,但是Nginx返回给客户端的响应码是502。     * 如果响应码是404则表示没有,Maven会按照服务器端没有依赖库处理,但是返回的502表示服务器错误maven则不再继续向后处理。     

    2024年02月21日
    浏览(48)
  • 【docker】centos 使用 Nexus Repository 搭建私有仓库

    Nexus Repository 是一种流行的软件仓库管理工具,它可以帮助您搭建私有仓库,以便在内部网络或私有云环境中存储、管理和分发各种软件包和组件。 它常被用于搭建Maven的镜像仓库。本文演示如何用Nexus Repository搭建docker 私有仓库。 使用Nexus Repository搭建本地Docker仓库的步骤如

    2024年01月23日
    浏览(56)
  • nexus搭建maven私有仓库

    Nexus 在企业开发中还是比较常用的私有仓库管理工具,一般把公司内部的Maven jar 包或npm包上传到仓库中,有效的对包文件进行管理。 Nexus 至少需要 2G 以上的内存 安装nexus之前首先安装配置好 JDK 环境 和 Maven环境 1、Linux环境安装openJDK 2、Centos7.3安装maven并配置加速镜像源 ne

    2024年02月12日
    浏览(46)
  • nexus3 maven迁移仓库迁移

    迁移背景: 从nexus 3.33 升级到 nexus 3.64 过程中,私服 maven 的 snapshot 和 hosted 无法上传。由于这个 snapshot 和 hosted 和 npm-proxy 放的同一个 blob存储,无法单独拆除去,所以采用迁移的方式 迁移思路: down下来 snapshot 和 hosted 仓库,然后 批量上传,下方的代码演示的 release 更改相

    2024年01月18日
    浏览(59)
  • Maven打包构建Docker镜像并推送到仓库

    对于开发完成的服务要发布至服务器Docker时,我刚学习了解Docker时构建镜像方式是将我的本地服务先通过maven打包称为jar包,然后再上传至我的服务器上,通过Dockerfile将其构建成为镜像。后来才了解了直接通过maven命令直接打包构建的方式,以下是完成这一操作的步骤。 修改

    2024年02月05日
    浏览(66)
  • Nexus仓库介绍以及maven deploy配置

    首先介绍一下Nexus的四个仓库的结构: maven-central 代理仓库,代理了maven的中央仓库:https://repo1.maven.org/maven2/; maven-public 仓库组,另外三个仓库都归属于这个组,所以我们的maven配置文件只需配置这个仓库的地址,就可以使用另外三个仓库的组件; maven-releases 稳定版本仓库,

    2024年02月10日
    浏览(40)
  • 【仓库管理】搭建 Maven 私服之一--Nexus仓库(Repository)管理软件

    Nexus 读音:/ˈneksəs/是 Sonatype 公司发布的一款仓库(Repository)管理软件,常用来搭建 Maven 私服,所以也有人将 Nexus 称为“Maven仓库管理器”。 Maven 私服其实并不是 Maven 的核心概念,它仅仅是一种衍生出来的特殊的仓库,但这并不代表它不重要,相反由于私服具有降低中央仓

    2024年01月17日
    浏览(61)
  • Maven进阶2 -- 私服(Nexus)、私服仓库分类、资源上传和下载

    目录 私服是一台独立的服务器,用于解决团队内部的资源共享与资源同步问题。 Nexus 是sonatype公司的一款maven私服产品。 下载地址 启动 访问 登录   本地仓库上传和访问资源需要进行 配置 。 ①创建两个仓库demo-snapshot和demo-release   ②配置访问私服的权限 ③配置私服访问路

    2024年02月13日
    浏览(44)
  • 手动上传本地jar、aar到maven私有仓库nexus

    在此做个笔记

    2024年02月10日
    浏览(49)
  • 私有仓库工具Nexus Maven如何部署并实现远程访问管理界面

    Nexus是一个仓库管理工具,用于管理和组织软件构建过程中的依赖项和构件。它与Maven密切相关,可以作为Maven仓库的服务器。Nexus提供了一个集中式的位置,用于存储和共享构件,使团队成员能够方便地访问和部署这些构件。 Cpolar内网穿透是一种安全的内网穿透云服务,可以

    2024年01月18日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包