maven3实战之仓库(maven仓库分类)

转载自:http://fhd001.iteye.com/blog/1187157

对于maven来说,仓库只分为两类:本地仓库和远程仓库。当maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,maven就会去远程仓库查找,发现需要的构件之后,下载到本地仓库再使用。如果本地仓库和远程仓库都没有需要的构件,maven就会报错。
在这个最基本分类的基础上,还有必要介绍一些特殊的远程仓库。中央仓库是maven核心自带的远程仓库,它包含了绝大部分开源的构件。在默认配置下,当本地仓库没有maven需要的构件的时候,它就会尝试从中央仓库下载。私服是另一种特殊的远程仓库,为了节省带宽和时间,应该在局域网内架设一个私有的仓库服务器,用其代理所有外部的远程仓库。内部的项目还能部署到私服上供其他项目使用。除了中央仓库和私服,还有很多其他公开的远程仓库,常见的有java.net Maven库(http://download.java.net/maven/2/)和jboss Maven库(http://repository.jboss.com/maven2/)等。

1.本地仓库
默认情况下,不管是在windows还是linux上,每个用户在自己的用户目录下都有一个路径名为.m2/repository/的仓库目录。有时候,因为某些原因(例如C盘空间不够),用户会想要自定义本地仓库目录地址。这时,可以编辑文件~/.m2/settings.xml,设置localRepository元素的值为想要的仓库地址。例如:

Xml代码   收藏代码
  1. <settings>  
  2.     <localRepository>D:\java\repository\</localRepository>  
  3. </settings>  

这样,该用户的本地仓库地址就被设置成了 D:\java\repository\。需要注意的是,默认情况下,~/.m2/settings.xml文件是不存在的,用户需要从Maven安装目录复制$M2_HOME/conf/settings.xml文件再进行编辑。
一个构件只有在本地仓库中之后,才能由其他Maven项目使用,那么构件如何进入到本地仓库中呢?最常见的是依赖Maven从远程仓库下载到本地仓库中。还有一种常见的情况是,将本地项目的构件安装到Maven仓库中。例如本地有两个项目A和B,两者都无法从远程仓库获得,而同时A又依赖于B,为了能构建A,B就必须首先得以构建并安装到本地仓库中。为了安装项目,我们可以在项目中执行: mvn clean install命令。Install插件的install目标将项目的构建输出文件安装到本地仓库。

2.远程仓库
安装好Maven后,如果不执行任何Maven命令,本地仓库目录是不存在的。当用户输入第一条Maven命令之后,Maven才会创建本地仓库,然后根据配置和需要,从远程仓库下载构件至本地仓库。

3.中央仓库
由于最原始的本地仓库是空的,Maven必须知道至少一个可用的远程仓库,才能在执行Maven命令的时候下载到需要的构件。中央仓库就是这样一个默认的远程仓库,Maven的安装文件自带了中央仓库的配置。读者可以使用解压工具打开jar文件$M2_HOME/lib/maven-model-builder-3.0.jar(在Maven2中,jar文件路径类似于$M2_HOME/lib/maven-2.2.1-uber.jar),然后访问路径:org/apache/maven/model/pom-4.0.0.xml,可以看到如下的配置:

 

Xml代码   收藏代码
  1. <repositories>  
  2.     <repository>  
  3.         <id>central</id>  
  4.         <name>Maven Repository Switchboard</name>  
  5.         <url>http://repo1.maven.org/maven2</url>  
  6.         <layout>default</layout>  
  7.         <snapshots>  
  8.             <enabled>false</enabled>  
  9.         </snapshots>  
  10.     </repository>  
  11. </repositories>  
包含这段配置的文件是所有Maven项目都会继承的超级POM。这段配置使用id central对中央仓库进行唯一标识,其名称为Maven Repository Switchboard,它使用default仓库布局。 最后需要注意的是snapshots元素,其子元素enabled的值为false,表示不从该中央仓库下载快照版本的构件。

4. 私服
私服是一种特殊的远程仓库,它是架设在局域网内的仓库服务, 私服代理广域网上的远程仓库,供局域网内的Maven用户使用。当Maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部的远程仓库下载,缓存在私服上之后,再为Maven的下载请求提供服务。此外,一些无法从外部仓库下载到的构件也能从本地上传到私服上供大家使用。
Maven 仓库的分类 Maven 是一个广泛使用的项目构建和依赖管理工具,在 Java 开发生态中占据重要地位。作为 Maven 的核心概念之一,仓库(Repository)扮演着至关重要的角色,用于存储项目的依赖、插件以及构建所需的各种资源。了解 Maven 仓库的分类和用途,不仅能够帮助开发者有效管理项目依赖,还能提升构建过程的稳定性与效率。本章将系统介绍 Maven 仓库的分类,包括本地仓库、远程仓库和中央仓库,以及它们之间的协作关系。这为您在实际开发中优化依赖管理策略、提高开发效率提供坚实的理论基础。 阅读详情

相关推荐

Maven仓库的分类

Maven 存放构件的仓库分两种:本地仓库和远程仓库。Maven 寻找构件的时候,先查看本地仓库,如果本地仓库存在坐标对应的构件,就直接使用。 如果本地仓库不存在所需要的构件,或者需要查看是否有更新的构件版本,Maven 就会去远程仓库查找,发现需要的构件后,下载到本地仓库后使用。如果本地仓库和远程仓库都没有找到需要的构件,Maven 就报错。 远程仓库又可以分为三种:一种是中央仓库;另一种是私服...

九师兄 1123

maven仓库--搭建局域网私服(windows版)

使用nexus搭建局域网私服 一. 认识mav仓库 1.1 maven仓库的作用   回想之前不用maven的时候,我们用eclipse原始的项目骨架构建项目时,在工程目录下往往有一个lib文件夹用来存放工程所需jar文件,每次建一个新工程时都会有这样一个lib文件夹。然后将jar复制进lib文件夹配置路径,很显然有大量的重复工作,而且不同项目所用jar包不尽相同,需要我们慢慢去分辨。而后我...

weixin_30338743的博客 423

YAVAB:这是我的Discord Bot,称为YAVAB,曾经是私人仓库,但现在任何人都可以查看我的代码

亚瓦布 这是我叫Discord Bot的YAVAB,代表“另一个非常棒的Bot”。 它是为我的叔叔Discord服务器以及将来的某个时间为我的个人服务器设计的,它曾经是一个私人仓库,但现在任何人都可以查看/判断我的代码! 这非常有趣,我计划至少继续开发一段时间! 编辑: YAVAB代表Yet Another Very Awesome Bot 用法 Docker Compose (推荐使用,以简化设置/修改) docker-compose.yml --- version : " 2.1 " services : yavab : image : ghcr.io/archgryphon9362/yavab container_name : yavab environment : - TOKEN=SBTRnyJ234N34B3B4324Tr7854

A. 数据仓库 --- 概述

A. 数据仓库 — 概述 概述 信息 操作型系统:以事务为主。以可预测的方式完成同样的操作型任务。 分析型系统:以评估效果为主。 数仓的需求 DW/BI系统要能方便地存取信息 DW/BI系统必须以一致的形式展现信息 DW/BI系统必须能够适应变化 DW/BI系统必须能够及时展现信息 DW/BI系统必须成为保护信息财富的安全壁垒 DW/BI系统必须成为提高决策制定...

micklongen的专栏 4920

别再死磕V1了!手把手教你用WPS Web Office V3 SDK快速集成(附Java Demo避坑指南)

本文详细介绍了如何从WPS Web Office V1迁移到V3版本,重点讲解了V3在性能、安全性和扩展性上的优势,以及Java开发者如何快速集成V3 SDK。文章包含核心功能实现、高级功能适配(如Solon框架)和常见问题排查指南,帮助开发者高效完成迁移并避免常见陷阱。

weixin_27215337的博客 336

从零构建MAVLink通信:PX4飞控与QGC的协议握手全解析

本文详细解析了PX4飞控与QGC地面站通过MAVLink协议进行通信的全过程,重点介绍了航点传输协议的状态机设计、INT类型消息的优化优势以及异常处理与调试技巧。通过实战案例和性能优化建议,帮助开发者高效构建无人机通信系统,提升数据传输效率与稳定性。

weixin_29209805的博客 505

如何将A代码仓库分支代码推送到B代码仓

将A代码仓分支推送到B仓库

qq_45003354的博客 2万+

流媒体协议-RTMP简介

与rtsp 不同,RTSP(Real-Time Streaming Protocol)是一个控制协议,负责控制媒体流的传输,但不传输媒体数据本身。RTSP 可以通过 TCP 或 UDP 传输 RTP 包来传输音视频数据。 RTMP(Real-Time Messaging Protocol)是一个综合性的协议,不仅可以传输音视频数据,还可以传输信令控制指令。RTMP 使用 TCP 作为传输协议,可以直接在 TCP 连接上传输音视频数据,也可以传输控制指令,实现了音视频流的实时传输和控制

xiaoshuaijinniu的博客 4552

Maven实战(三)- Maven仓库

当Maven需要下载构件的时候,先查看本地仓库,如果本地仓库没有,再请求私服,如果私服也没有,则会从外部的远程仓库进行下载,并缓存在私服上。前者表示发布版本的构件仓库,后者表示快照版本的构件仓库。在此基础上,Maven可以在指定位置上统一存储所有Maven项目共享的构件,在需要这些构件的时候,声明其依赖坐标,Maven会自动根据坐标找到仓库中的构件,并使用它们。的值为central,表示该配置为中央仓库的镜像,任何对于中央仓库的请求都会转至该镜像,用户也可以使用同样的方法配置其他仓库的镜像。

AHAO的博客 7400

【Python实战解析】从数据爬取到房价预测:一个完整的数据科学项目流程拆解

本文详细拆解了一个完整的Python数据科学项目流程,从爬取长沙二手房数据到房价预测模型构建。通过实战案例,介绍了数据爬取、清洗、可视化及模型优化的关键技巧,帮助开发者掌握Python在数据分析中的应用,提升程序开发能力。

weixin_30379531的博客 411

气象数据收集

国家气象信息中心-中国气象数据网 (cma.cn)国家气象信息中心-中国气象数据网 (cma.cn)预报数据:需要定制,收费10万+路面数据同化系统,实时。

weixin_42209537的博客 3487

Maven--仓库的分类

Maven仓库的分类 Maven 存放构件的仓库分两种:本地仓库和远程仓库。Maven 寻找构件的时候,先查看本地仓库,如果本地仓库存在坐标对应的构件,就直接使用。 如果本地仓库不存在所需要的构件,或者需要查看是否有更新的构件版本,Maven 就会去远程仓库查找,发现需要的构件后,下载到本地仓库后使用。如果本地仓库和远程仓库都没有找到需要的构件,Maven 就报错。 远程仓库又可以分为三种:一种是...

吴声子夜歌的博客 860

On the convergence of FedAvg on non-iid data

On the convergence of FedAvg on non-iid data

Lyn_S的博客 7081

Maven——仓库

Maven仓库布局、Maven仓库分类、远程仓库配置、快照版本、从仓库解析依赖的机制、镜像、仓库搜索服务

码说芯语的博客 4380

RT-DETR 模型剪枝优化:结构化剪枝对 R18/R50 性能的影响

本文提出分层结构化剪枝策略R18:参数量减少 42%(28M→16.2M),推理速度提升 35%(15→20.3 FPS@Jetson Nano),mAP@0.5 仅降 1.2%;R50:参数量减少 55%(170M→76.5M),推理速度提升 48%(42→62.2 FPS@T4),mAP@0.5 仅降 2.1%。核心价值:为 RT-DETR 提供“精度-效率-部署”平衡的轻量化方案,推动其在边缘设备、工业质检等场景的大规模落地。部署建议。

走向CTO的路上... 464

【精品5万字图文详解】特征平台建设方案与最佳实践

关键词:特征工程、特征平台、特征存储、特征服务、机器学习、数据工程摘要:本文全面介绍了特征平台的建设方案与最佳实践,从特征工程的基本概念出发,深入剖析了特征平台的核心组件、架构设计和实现方法。文章通过生动的类比和实例,使读者能够轻松理解特征工程的重要性及特征平台如何解决企业在机器学习过程中面临的数据管理挑战。同时,详细探讨了主流开源特征平台的对比分析、系统设计要点、实际落地案例以及未来发展趋势,为企业构建高效特征平台提供了全面的指导和参考。想象一下,小明是一位热爱烹饪的小学生。有一天,他想做一道美味的菜肴送

AI天才研究院 952

【Maven二】——maven仓库

由于在具体项目开发过程中对于maven的理解和掌握处于基本运用的阶段,了解maven过于片面,所以本篇博客是博主学习《maven实战》书籍之后的总结,绝大多数内容源于《maven》实战这本书籍。

理想主义的花最终会盛开在浪漫主义的土壤里,我的热情永远不会熄灭在现实的平凡之中,我们终将上岸,阳光万里。 2万+

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Maven 仓库配置

本文系统介绍了Maven中仓库与镜像的配置方法。仓库分为本地仓库和远程仓库(中央仓库、三方仓库、私有仓库),可通过pom.xml或settings.xml进行多仓库配置。镜像用于替代远程仓库,通过mirrorOf属性指定替代范围。文章详细阐述了多仓库与多镜像的配置原则、优先级规则及协同工作流程,帮助开发者解决依赖来源多样性问题,提高下载效率。配置时需注意仓库ID唯一性、release/snapshot版本控制以及镜像匹配顺序等关键点。

麦克马的博客 1687

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Maven仓库的配置

Maven 是Apache软件基金会组织维护的一款自动化构建工具,专注服务于 Java 平台的项目构建和依赖管理。在我看来,Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包从而实现自动化构建的功能。本文将介绍如何在自己的电脑上安装并且成功使用maven仓库。......

m0_58258383的博客 2万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Maven 仓库

在Maven的术语中,仓库是一个位置(placeMaven仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。Maven仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(等等)的地方。

2301_78652407的博客 2665

maven3实战之仓库

maven3实战之仓库(maven仓库分类) maven3实战之仓库(maven仓库分类) ---------- 对于maven来说,仓库只分为两类:本地仓库和远程仓库。当maven根据坐标寻找构件的时候,它首先会查看本地仓库,如果本地仓库存在此构件,则直接使用;如果本地仓库不存在此构件,或者需要查看是否有更新的构件版本,maven就会去远程仓库查找,发现需要的构件之后,下载到...

ab316600的博客 131
上一篇: Spring防止重复ID命名
下一篇: Maven实战-多项目间的依赖
cwfmaker
博客等级 码龄18年 6粉丝 179原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值