Maven高级(四)--私服

一.作用


我们所拆分的模块是可以在同一个公司各个项目组之间的项目组之间进行资源共享的,这就需要Maven的私服来实现。


二.场景


两个项目组之间如何基于私服进行资源的共享的呢?
例如A开发了一个模块tlias-utils,B团队进行项目开发,要想使用tlias-utils中提供的工具类,怎么办呢?在pom.xml文件中引入对应的坐标。
当B团队在maven项目的pom.xml配置文件中引入依赖之后,maven如何查找这个依赖?查找顺序:
(1)本地仓库:只在A团队的本地仓库有这个依赖jar包,B的本地仓库没有。
(2)远程中央仓库:中央仓库全球只有一个,不是什么人都可以往中央仓库中来上传jar包的,我们是没有权限操作的。

所以此时maven的私服就出场了,私服其实就是架设在公司局域网内部的一台服务器,就是一种特殊的远程仓库。

 这样各个团队可以连接私服上传jar包,如果我们在项目中需要使用其他第三方提供的依赖,如果本地仓库没有,也会自动连接私服下载,如果私服没有,私服此时会自动连接中央仓库,去中央仓库中下载依赖,然后将下载的依赖存储在私服仓库及本地仓库中。

三.概念

【1】私服:是一种特殊的远程仓库,它是假设在局域网内的仓库服务,用来代理位于外部的中央仓库,用于解决团队内部的资源共享与资源同步的问题。
【2】依赖查找顺序:
本地仓库->私服仓库->中央仓库

四.具体步骤

资源的上传与下载,我们需要做三步配置,执行一条指令。
第一步配置:在maven的配置文件中配置访问私服的用户名和密码。--在自己maven安装目录下的conf/setting.xml中的servers中配置。例:

<server><id>maven-releases</id><username>admin</username><password>admin</password>
</server><server><id>maven-snapshots</id><username>admin</username><password>admin</password>
</server>

第二步配置:在maven的配置文件中配置连接私服的地址(url地址,依赖下载的仓库组地址)--在自己maven安装目录下的conf/settings.xml中的mirrors,profiles中配置。例:

<mirror><id>maven-public</id><mirrorOf>*</mirrorOf><url>http://192.168.150.101:8081/repository/maven-public/</url>
</mirror><profile><id>allow-snapshots</id><activation><activeByDefault>true</activeByDefault></activation><repositories><repository><id>maven-public</id><url>http://192.168.150.101:8081/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>
</profile>

第三步配置:IDEA的maven工程的pom文件中配置上传(发布地址)--直接在tlias-parent中配置发布地址。例:

<distributionManagement><!-- release版本的发布地址 --><repository><id>maven-releases</id><url>http://192.168.150.101:8081/repository/maven-releases/</url></repository><!-- snapshot版本的发布地址 --><snapshotRepository><id>maven-snapshots</id><url>http://192.168.150.101:8081/repository/maven-snapshots/</url></snapshotRepository>
</distributionManagement>

配置好了上述三步之后,要上传资源到私服仓库,就执行maven声明周期:deploy。

补充:

【1】私服仓库说明
RELEASE:存储自己开发的RELEASE发布版本的资源。
SNAPSHOT:存储自己开发的SNAPSHOT发布版本的资源。
 Central:存储的是从中央仓库下载下来的依赖。

【2】项目版本说明
RELEASE(发布版本):功能趋于稳定、当前更新停止,可以用于发行的版本,存储在私服中的RELEASE仓库中。
SNAPSHOT(快照版本):功能不稳定、尚处于开发中的版本,即快照版本,存储在私服的SNAPSHOT仓库中。

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

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

相关文章

身高排队,不是你想的那么简单——力扣“按身高排序”题解分析

本篇博客会讲解力扣“2418. 按身高排序”的解题思路&#xff0c;这是题目链接。 想要排序身高数组是非常简单的。我们在对身高数组进行排序时&#xff0c;会进行一些操作&#xff0c;比如交换2个元素等等。本题中&#xff0c;相当于我们要“记住”排序身高数组中进行了哪些操作…

2023校招,2024校招,社招Shein,大量HC,使用内推码直达,流程快速

广州&#xff0c;深圳&#xff0c;南京&#xff0c;大量开发岗位&#xff0c;包含Java开发岗&#xff0c;前端开发岗大数据开发岗位&#xff0c;产品岗位&#xff0c;测试岗位等等&#xff0c;大量hc&#xff0c;欢迎大家投递Shein&#xff0c;打造全球化的快时尚跨境电商品牌

【计算机视觉 | 图像分割】arxiv 计算机视觉关于图像分割的学术速递(7 月 4 日论文合集)

文章目录 一、分割|语义相关(18篇)1.1 TomatoDIFF: On-plant Tomato Segmentation with Denoising Diffusion Models1.2 CGAM: Click-Guided Attention Module for Interactive Pathology Image Segmentation via Backpropagating Refinement1.3 RefSAM: Efficiently Adapting …

Pico版节奏光剑简单制作

视频教程参考&#xff1a;Pico VR Neo3开发实战教程&#xff08;1&#xff09;——节奏光剑&#xff0c;舞台灯效_哔哩哔哩_bilibili 1、新建项目和pico配置 插件导入 找到下载的pico SDK 选择json文件&#xff0c;点击即可导入 启用插件 在 Project Settings 窗口中&#xf…

Spring AOP讲解及实例

Aop面向切面编程 文章目录 Aop面向切面编程什么是AOPAOP术语Spring AOP 的使用导入依赖编写切面类切面定义语法小细节输出日志成功 什么是AOP AOP&#xff1a;&#xff08;Aspect Oriented Programming&#xff09;面向切面编程&#xff0c;和OOP&#xff08;Object Oriented …

Vue3 网络请求——axios 高级用法之 axios 拦截器实战与并发请求

文章目录 &#x1f4cb;前言&#x1f3af;关于拦截器&#x1f3af;项目创建&#x1f3af;代码分析&#x1f3af;补充&#xff1a;并发请求&#x1f9e9;axios.all() 和 Promise.all() 的区别 &#x1f4dd;最后 &#x1f4cb;前言 Axios 是一个流行的基于 Promise 的 HTTP 客户…

设计模式3:单例模式:静态内部类模式是怎么保证单例且线程安全的?

上篇文章&#xff1a;设计模式3&#xff1a;单例模式&#xff1a;静态内部类单例模式简单测试了静态内部类单例模式&#xff0c;确实只生成了一个实例。我们继续深入理解。 静态变量什么时候被初始化&#xff1f; public class Manager {private static class ManagerHolder …

【SQL应知应会】行列转换(三)• Oracle版

欢迎来到爱书不爱输的程序猿的博客, 本博客致力于知识分享&#xff0c;与更多的人进行学习交流 本文收录于SQL应知应会专栏,本专栏主要用于记录对于数据库的一些学习&#xff0c;有基础也有进阶&#xff0c;有MySQL也有Oracle 行列转换 • Oracle版 oracle的行列转换前言1.数据…

免费开源 | 基于SpringBoot的博客系统

介绍 基于springboot后端架构&#xff0c;websocket实现私信&#xff0c;前端采用thymeleafbootstraplayuiRedis 注册使用邮箱验证注册&#xff0c;且验证码存在redis中&#xff0c;所以需要有redis环境 软件架构 springbootwebsocketthymeleafbootstraplayuiRedismysql 8.…

vue项目业务实现,视频监控-文件流,大屏适配方案(v-scale-screen),websocket前端

最近把以前的业务场景及解决方案整理了一下&#xff0c;具体实现的工具如下&#xff1a; 监控-视频文件流>video.js videojs-contrib-hls 大屏适配方案> v-scale-screen websocket>sockjs-client webstomp-client 视频监控-文件流 使用方法 下载video插件&#xf…

Jmeter性能优化方案

最近用jmeter测试并发出现了访问端口异常问题的排查及解决方案做一个归纳&#xff1a; 背景&#xff1a;接口压测异常情况发生率达到了99% 线上情况&#xff1a; 错误情况展示&#xff1a; 原因&#xff1a; Jmeter里的http sample勾选了keep alive&#xff0c;导致会话一直…

系统上线前,SQL脚本的9大坑

前言 系统上线时&#xff0c;非常容易出问题。 即使之前在测试环境&#xff0c;已经执行过SQL脚本了。但是有时候&#xff0c;在系统上线时&#xff0c;在生产环境执行相同的SQL脚本&#xff0c;还是有可能出现一些问题。 有些小公司&#xff0c;SQL脚本是开发自己执行的&am…