【Maven技术专题】「知识盲区」教你如何使用深入分析Maven配置私服仓库的使用指南(基础篇)

Maven私服的使用实战

    • 将内部构件部署到私服仓库
      • 什么是仓库和仓库组
      • 远程仓库的定义
        • 仓库定义基本结构
          • 仓库结构的属性介绍
      • 部署部件到远程仓库
      • 远程仓库的认证
        • 用户名+密码认证
          • 案例参考
        • 私钥进行鉴权
      • 镜像mirror
        • 镜像仓库的工作原理

在这里插入图片描述

将内部构件部署到私服仓库

如果想先学好什么如何将内部构件部署到私服仓库,那么首先需要先了解什么是仓库和仓库组。

什么是仓库和仓库组

  • 仓库(repository)的概念实际上是一个用于存储和分发构件(artifact,如JAR、WAR、pom.xml文件等)的服务器。仓库的URL用于指向这个仓库,以便Maven客户端可以从中下载所需的构件。此外,多个仓库还是可以组成仓库组,那么什么是仓库组?

  • 仓库组(repository group)是Nexus Repository Manager等工具引入的一个概念,它本质上是将多个仓库的URL地址合并成一个新的URL。当Maven客户端要从这个仓库组的URL下载某个构件时,系统会在仓库组包含的所有仓库中搜索,这一操作称为仓库路由。它可以大大提高工作效率,因为你不再需要单独地在所有的仓库中搜寻。

远程仓库的定义

仓库的URL可以指向仓库组。仓库组将多个仓库集合在一起,当指向仓库组时,实际上是从仓库组中下载所有仓库的构件。

<repositories><repository><id>central</id><name>Central Repository</name><url>https://repo.maven.apache.org/maven2</url><layout>default</layout><snapshots><enabled>false</enabled></snapshots></repository>
</repositories>
仓库定义基本结构
  • <repositories>元素中定义了一个名为central的仓库,其URL为"https://repo.maven.apache.org/maven2"。
  • <layout>元素指明了这个仓库使用的结构是Maven默认的结构,即artifact在仓库中的存储路径会按照artifact的groupId、artifactId和version信息来组织。
  • <snapshots>元素表明这个仓库不接受snapshot版本的构件,snapshot版本通常用于开发过程中的临时版本。只有一个release版本的构件才能被放入这个仓库。

包含这段配置的文件是所有Maven项目都会继承的超级POM,开发者也可以自己定义远程仓库,假如要将默认的远程仓库设置为Wizard,在模块的POM文件中,作如下定义:

<repositories><repository><id>wizard</id><name>Wizard Repository</name><url>http://repository.wizard.com/maven2/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots><layout>default</layout></repository>
</repositories>
仓库结构的属性介绍
  • releasessnapshots:它们用来控制Maven对于发布版构件和快照版构件的下载。除了enabled,还有updatePolicy和checksumPolicy两个属性。

  • updatePolicy:表示从远程仓库检查更新的频率,默认是daily每天检查一次。

    • never:从不
    • always:每次构建都检查
    • inverval X :每隔X分钟检查一次,X为任意正整数。
  • checksumPolicy:表示检查检验和文件的策略。当构件被部署到Maven仓库中时,会同时部署对应的校验和文件。在下载构件时,Maven会验证校验和文件,如果失败,怎么办?当该值为默认的warn时,只会输出警告信息。其他值:fail 构建失败 ignore 忽略错误信息

部署部件到远程仓库

如果您想将构件部署到私服,可以使用Maven的deploy命令。为了配置部署相关信息,您需要在项目的pom.xml文件中添加distributionManagement标签。

pom.xml文件中,distributionManagement标签用于配置构件的部署目标。您可以指定私服的URL、认证信息以及其他相关配置,以下是一个示例的distributionManagement配置:

  <repository><id>my-repo</id><url>https://example.com/repository</url><uniqueVersion>false</uniqueVersion></repository>
</distributionManagement>

在上述示例中,repository标签指定了私服的唯一标识符(id)和URL(url)。您可以根据实际情况修改这些值。

通过配置distributionManagement标签,您可以告诉Maven将构件部署到指定的私服。在执行deploy命令时,Maven将使用配置的URL和认证信息将构件上传到私服。这种配置方式使得构件的部署变得简单和自动化,确保构件能够被正确地发布到私服中,供其他项目使用。

<distributionManagement><repository><id>myrelease</id><name>my release repo</name><url>http://localhost:8081/nexus/content/repositories/releases/</url></repository><snapshotRepository><id>mysnapshot</id><name>my snapshot repo</name><url>http://localhost:8081/nexus/content/repositories/snapshots/</url></snapshotRepository>
</distributionManagement>

在工程的pom文件中添加下面配置

<distributionManagement><repository><id>myrelease</id><name>my release repo</name><url>http://ip:8081/nexus/content/repositories/releases/</url></repository><snapshotRepository><id>mysnapshot</id><name>my snapshot repo</name><url>http://ip:8081/nexus/content/repositories/snapshots/</url></snapshotRepository>
</distributionManagement>

远程仓库的认证

当需要进行鉴权时,可以在Maven的settings.xml文件中配置server节点,并提供相应的用户名和密码,或者私钥。在Maven的settings.xml文件中,server节点用于配置与仓库的鉴权信息。每个server节点对应一个仓库,可以配置该仓库的认证信息

用户名+密码认证

如果您需要进行身份验证,请在settings.xml文件中添加以下servers节点,并配置用户名和密码,如下所示的结构:

<server><id>{POM文件/Setting文件中定义的远程仓库ID}</id><username>{账号用户名}</username><password>{账号密码}</password>
</server>

在上述示例中,server节点的id指定了仓库的唯一标识符,username和password分别指定了用于鉴权的用户名和密码。

案例参考

作为一个搭配使用可以看一下认证鉴权和仓库的对应关系和匹配关系,如下所示。

<repositories><repository><id>wizard</id><name>Wizard Repository</name><url>http://repository.wizard.com/maven2/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots><layout>default</layout></repository>
</repositories>
<!--配置一些仓库的鉴权信息 -->
<server><id>wizard</id><username>root</username><password>qwe!@#</password>
</server>
私钥进行鉴权

如果使用私钥进行鉴权,可以使用privateKey元素来配置私钥的路径和密码,通过在settings.xml中配置server节点,并提供相应的鉴权信息,Maven在与仓库进行交互时将使用这些信息进行认证,确保只有经过授权的用户才能访问仓库。

  <servers><server><id>{POM文件/Setting文件中定义的远程仓库ID}</id><privateKey>/path/to/private-key</privateKey><passphrase>your-passphrase</passphrase></server></servers>
</settings>

在上述示例中,privateKey指定了私钥文件的路径,passphrase指定了私钥的密码(如果有的话)。

镜像mirror

如果仓库X可以提供仓库Y存储的所有内容,我们可以将X视为Y的一个镜像。镜像仓库的存在是为了解决地理位置的限制,有时候镜像仓库可以提供比中央仓库更快的服务。

镜像仓库的工作原理

当开发人员从仓库Y请求某个依赖项时,镜像仓库X会先检查自己的存储中是否有该依赖项的副本。如果有,镜像仓库X会立即返回该依赖项,而不需要从仓库Y下载。这样可以节省时间和带宽,提供更快的服务。

在这里插入图片描述

镜像仓库的设置通常在项目的构建工具(如Maven)的配置文件中进行。通过配置镜像仓库,开发人员可以选择从镜像仓库获取依赖项,而不是直接从中央仓库下载。这样可以加快构建过程,并提高开发效率。

例如,http://maven.net.cn/content/groups/public/,http://repo1.maven.org/maven2

在中国的镜像,当然跑得比西方快,所以可以用它来替代中央仓库,在settings.xml文件中设置如下配置即可

<mirror><id>myMirror</id><!-- 将所有的下载请求统一路由到私服,限制在线下载--><mirrorOf>*</mirrorOf><!-- 这里可以填写仓库id,或者*表示所有仓库 --><url>http://localhost:8081/nexus/content/groups/public/</url>
</mirror>

强制将所有对下载构件的请求,重定位到镜像的路径。这样可以限制项目只从私服上下载构件,从而达到对三方件的控制(在大公司尤为重要,因为涉及到安全问题)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218221.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AMEYA360:海康存储PCIe4.0固态硬盘A4000介绍

海康存储即将发布PCIe4.0固态硬盘新品A4000&#xff0c;搭载全新定制主控及高品质3D NAND闪存颗粒&#xff0c;最大顺序读取速度达7100MB/s&#xff0c;提供五年质保服务。 2022年&#xff0c;海康存储开始在PCIe 4.0固态硬盘领域全面发力&#xff0c;推出C4000 ECO、C4000等多…

【OpenVINO】使用OpenVINO实现 RT-DETR 模型 INT8量化推理加速

使用OpenVINO实现 RT-DETR 模型 INT8量化推理加速 1. 使用 OpenVINO 实现 RT-DETR 模型 INT8量化1.1 神经网络压缩框架 &#xff08;NNCF&#xff09;1.2 准备校准数据集1.2.1 下载COCO验证数据集1.2.2 Validator包装器1.2.3 转换用于量化的数据集 1.3 定义模型精度校验方法1.4…

DBA轻松应对慢查询挑战,使用NineData这款工具就够了!

对于一个 DBA 来说&#xff0c;从公司数据库系统的稳定程度可以看出他的能力几何&#xff0c;一个优秀的 DBA 不仅要保证数据库的稳定运行&#xff0c;还需要有能力有效处理数据库的各种突发性能问题&#xff0c;而最常见的性能问题&#xff0c;就是慢查询。 我们公司规模比较…

docker-compose 单机容器编排

docker-compose 单机容器编排 dockerfile&#xff1a;先配置好文件&#xff0c;然后build&#xff0c;镜像------->容器 docker-conpose既可以基于dockerfile&#xff0c;也可以基于镜像&#xff0c;一件事拉起镜像和容器。 docker-compose 核心就是yml文件&#xff0c;可…

共享门店会在未来新零售占据主角吗?

共享门店作为一种创新的商业模式&#xff0c;在未来新零售领域中可能会占据一定的角色&#xff0c;但具体是否会成为主角&#xff0c;还需要根据市场的发展和技术的进步来判断。 首先&#xff0c;共享门店模式通过资源共享、风险共担、客户共享和收益共享等方式&#xff0c;为…

WordPress插件你好多莉( Hello Dolly )可否卸載

什么是你好多莉Hello Dolly WordPress插件 你好多莉是 WordPress插件 简单的预装在 WordPress 上。 如果您激活后者&#xff0c;它将显示出名曲的歌词“ 你好&#xff0c;多莉 “要 路易斯阿姆斯特朗. 您可能已经注意到&#xff0c;在阅读插件说明时&#xff0c;还不够清楚。 …

C语言之数组精讲(1)

目录 数组 数组的声明&#xff08;使用数组前的准备&#xff09; 访问数组&#xff08;数组的使用方法&#xff09; 数组的遍历 数组初始化 1.在声明变量时&#xff0c;除了必要的情况下&#xff0c;都需要对变量进行初始化。 2.我们还可以像下面在声明数组时不指定元素…

python-爬取壁纸

代理池的&#xff0c;防止IP 被封 找到图片真实地址 现在看到的只是图片的预览地址 (previews) 1.检查&#xff1a; 2.鼠标变为箭头时查看网页源代码 关于怎样在源代码中找到图片的真实地址 ??? 为什么在源代码界面 ctrl f 时候搜索的是 .png ??? 首先图片地址是以 .j…

11 月公链盘点:Solana 强势复苏,Blast 飞速崛起,Web3 游戏市值猛涨

作者&#xff1a;stellafootprint.network 11 月的加密市场充满了重大事件&#xff0c;从比特币 ETF 的热议到币安 40 亿美元的和解&#xff0c;均获得了极大的关注。在以太坊继续主导 TVL 和像 Arbitrum 这样的 Layer 2 成为焦点的同时&#xff0c;我们也见证了 Solana 引人注…

通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair

本文通过示例介绍了 RIOT 如何轻松地将数据从 AWS ElastiCache 迁移到云原生内存数据库&#xff08;如 Tair 和云数据库 Redis 版&#xff09;。 1. 准备资源迁移 1.1. 源代码 AWS ElastiCache cache.r6g.xlarge。它有三个数据分片&#xff0c;与 Redis 6.2 兼容。 AWS EC2 t2.…

TypeScript中的基本类型

提示&#xff1a;TypeScript中的基本类型 文章目录 前言基本类型1.类型声明2.自动类型判断3.类型断言 前言 TypeScript &#xff08;计算机编程语言&#xff09;简称&#xff1a;TS&#xff0c;是 JavaScript 的超集。简单来说就是&#xff1a;JS 有的 TS 都有。JS写的代码在TS…

Video anomaly detection with spatio-temporal dissociation 论文阅读

Video anomaly detection with spatio-temporal dissociation 摘要1.介绍2.相关工作3. Methods3.1. Overview3.2. Spatial autoencoder3.3. Motion autoencoder3.4. Variance attention module3.5. Clustering3.6. The training objective function 4. Experiments5. Conclusio…

白酒行业@2023: 「库存」的烦恼

【潮汐商业评论/原创】 不久前&#xff0c;中国酒类流通协会官方微信通知&#xff0c;“经销商及代理商积压库存过多&#xff0c;无法进行正常采购”&#xff0c;原计划于12月11至13日举办的2023杭州国际酒业博览会延期&#xff0c;将与2024北京国际酒业博览会合并。 库存过多…

Reinfocement Learning 学习笔记PartⅠ

文章目录 Reinfocement Learning一、基本概念二、贝尔曼公式&#xff08;bellman equation&#xff09;2.1 为什么return重要2.2 state value function的定义2.3 贝尔曼公式推导2.4 如何求解贝尔曼公式2.5 Action value的定义 三、贝尔曼最优公式&#xff08;bellman optimalit…

山西电力市场日前价格预测【2023-12-11】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2023-12-11&#xff09;山西电力市场全天平均日前电价为535.55元/MWh。其中&#xff0c;最高日前电价为689.29元/MWh&#xff0c;预计出现在09:00。最低日前电价为422.38元/MWh&#xff0c;预计…

许战海战略文库|美国品牌实践:从品类品牌向产业品牌转变

引言&#xff1a;《品类战略》是上世纪70年代特劳特和里斯所推崇的定位理论,强调“品类聚焦是唯一正确的战略“新品类要使用新品牌”等战略思想,并对品牌延伸等多元化品牌进行批判,并由中国代理人传入中国&#xff0c;从2002年至今滋生了众多品类品牌,阻碍中国经济发展。 在今天…

是谁,在参与数十亿美元的量子市场?

量子技术是最不为人们所了解、但却最有希望在未来几年颠覆商业和产业的进步技术之一。 很少有像量子信息科学市场这样小的市场能引起如此热烈的讨论。上周&#xff0c;根据Hyperion Research在圣克拉拉举行的Q2B硅谷会议上发布的年度量子计算&#xff08;QC&#xff09;市场更新…

为养宠家庭量身打造,352 X63 Pet宠物专效空气净化器“养宠安馨,人宠共护”

当下,养宠人群日益增多,宠物在给家庭带来了欢乐的同时,也产生了一系列困扰,如何在健康环境中快乐养宠,成为很多家养宠家庭的新需求。成立于2014年的北京三五二环保科技有限公司是一家立足于家庭洁净空气和安全用水领域的科技创新型公司。以“安全、健康、舒适”等消费需求为核心…

桌面便签软件哪个好用?可以放在桌面上的便签软件使用哪个

在现代快节奏的生活中&#xff0c;我们时常感到生活与工作的节奏难以协调。繁琐的工作日程与待办任务繁杂交织&#xff0c;往往让我们束手无策&#xff0c;无法高效地进行协调与分配。 桌面便签工具成为了我们处理这些挑战的得力助手。它不仅能够随时提醒我们完成任务&#xf…

如何本地搭建WampServer并结合cpolar内网穿透实现远程访问

文章目录 前言1.WampServer下载安装2.WampServer启动3.安装cpolar内网穿透3.1 注册账号3.2 下载cpolar客户端3.3 登录cpolar web ui管理界面3.4 创建公网地址 4.固定公网地址访问 前言 Wamp 是一个 Windows系统下的 Apache PHP Mysql 集成安装环境&#xff0c;是一组常用来…