Maven仓库详解

转载自:Maven入门指南④:仓库

1 . 仓库简介

  没有 Maven 时,项目用到的 .jar 文件通常需要拷贝到 /lib 目录,项目多了,拷贝的文件副本就多了,占用磁盘空间,且难于管理。Maven 使用一个称之为仓库的目录,根据构件的坐标统一存储这些构件的唯一副本,在项目中通过依赖声明,可以方便的引用构件。

2 . 仓库的布局

  构件都有唯一的坐标,Maven 根据坐标管理构件的存储。如以下对 spring-orm-3.2.0 的存储:

文件路径对应了:groupId/artifactId/version/artifactId-version.packaging

3 . 仓库的分类

  Maven 仓库分为本地仓库和远程仓库,寻找构件时,首先从本地仓库找,找不到则到远程仓库找,再找不到就报错;在远程仓库中找到了,就下载到本地仓库再使用。中央仓库是 Maven 核心自带的远程仓库,默认地址:http://repo1.maven.org/maven2。除了中央仓库,还有其它很多公共的远程仓库。私服是架设在本机或局域网中的一种特殊的远程仓库,通过私服可以方便的管理其它所有的外部远程仓库。

3 . 1 . 本地仓库

  Maven 本地仓库默认地址为:${user.home}/.m2/repository。

  通过修改 %MAVEN_HOME%/conf/settings.xml (或者:${user.home}/.m2/settings.xml,针对当前用户(推荐))配置文件可以更改本地仓库的位置。

3 . 2 . 中央仓库

  安装完 Maven ,本地仓库几乎是空的,这时需要从远程仓库下载所需构件。Maven 配置了一个默认的远程仓库,即中央仓库,找到 %MAVEN_HOME%/lib/maven-model-builder-3.2.1.jar,打开 org/apache/maven/model/pom-4.0.0.xml 超级POM:

3 . 3 . 在项目中添加其他远程仓库

  当中央仓库找不到所需的构件时,我们可以配置 pom.xml ,添加其它的远程仓库。

复制代码
 1 <repositories>
 2     <repository>  3 <id>Sonatype</id>  4 <name>Sonatype Repository</name>  5 <url>http://repository.sonatype.org/content/groups/public/</url>  6 <layout>default</layout>  7 <releases>  8 <enabled>true</enabled>  9 </releases> 10 <snapshots> 11 <enabled>false</enabled> 12 </snapshots> 13 </repository> 14 </repositories>
复制代码

其中 id 必须唯一,若不唯一,如设置为 central 将覆盖中央仓库的配置。

3 . 4 . 镜像仓库

  镜像仓库可以理解为仓库的副本,从仓库中可以找到的构件,从镜像仓库中也可以找到。比如针对中央仓库 http://repo1.maven.org/maven2 ,在中国有它的镜像仓库,这样我们直接访问镜像仓库,更快更稳定。

复制代码
 1 <settings>
 2  ...  3 <mirrors>  4 <mirror>  5 <id>maven.net.cn</id>  6 <name>central mirror in china</name>  7 <url>http://maven.net.cn/content/groups/public</url>  8 <mirrorOf>central</mirrorOf> <!--表明为central中央仓库配置镜像仓库-->  9 </mirror> 10 </mirrors> 11  ... 12 </settings>
复制代码

  其中,<mirrorOf> 指明了为哪个仓库配置镜像,可以使用通配符如:<mirrorOf>*</mirrorOf>,或者 <mirrorOf>repo1,repo2</mirrorOf> 等进行匹配。一旦配置了镜像,所有针对原仓库的访问将转到镜像仓库的访问,原仓库将不再能直接访问,即使镜像仓库不稳定或停用。在搭建私服的时候,我们通常为所有仓库设置镜像为私服地址,通过私服对所有仓库进行统一管理。

3 . 5 . 常用的仓库搜索地址

  • http://search.maven.org/
  • https://repository.sonatype.org/
  • http://mvnrepository.com/

转载于:https://www.cnblogs.com/ysq0908/p/4737977.html

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

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

相关文章

c++ 从 string 到 short

string test"1234"; short *p reinterpret_cast<short*>(const_cast<char*>(test.c_str()));从 short 到 char * char *q reinterpret_cast<char*>(const_cast<short*>(p));还可以利用 memcpy 这个函数 #include <cstring>short a…

JavaScript02

JavaScript02 如果<head>标签中包含的外部文件很多&#xff0c;那么这将直接导致页面展示速度很慢。因为html只有当<body>元素开始之后&#xff0c;才会开始页面展示动作&#xff0c;因此&#xff0c;最直接的解决办法就是&#xff0c;将一部分不是页面加载之后立刻…

.NET使用NPOI读取Word模板并替换关键字并下载

NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写 NPOI下载地址&#xff1a;http://npoi.codeplex.com/ 以下代码仅供参考&#xff0c;请根…

中间件、MetaQ入门学习

目录 1. 中间件技术 2. MetaQ中间件 3. MetaQ编程实践 1. 中间件技术 0x1: 中间件简介 中间件(Middleware)是提供系统软件和应用软件之间连接的软件&#xff0c;以便于软件各部件之间的沟通&#xff0c;特别是应用软件对于系统软件的集中的逻辑&#xff0c;在现代信息技术应用框…

MyBatis 入门到精通(二) SQL语句映射XML文件

MyBatis 真正强大之处就在这些映射语句&#xff0c;也就是它的魔力所在。对于它的强大功能&#xff0c;SQL 映射文件的配置却非常简单。 如果您比较SQL 映射文件配置与JDBC 代码&#xff0c;您很快可以发现&#xff0c;使用SQL 映射文件配置可以节省95%的代码量。MyBatis 被创建…

Monitoring the process execution and memory consumption in its lifetime

<?xml version"1.0" encoding"utf-8"?> Monitoring the process execution and memory consumption in its lifetimeMonitoring the process execution and memory consumption in its lifetime Recently, I am working on a research project whi…

设置和清除LD_LIBRARY_PATH

"" 设置 export LD_LIBRARY_PATH$LD_LIBRARY_PATH:/the/path/you/want/setexport LD_LIBRARY_PATH/the/path/you/want/set "" 查看设置 echo $LD_LIBRARY_PATH "" 清除 unset LD_LIBRARY_PATH

Jenkins中切换devtoolset

source /opt/rh/devtoolset-4/enable or source scl_source enable devtoolset-4

告诉一个远程团队协作的故事

Lisette Sutherland和Elinor Slomba在一起收集一些人的故事&#xff0c;这些人的业务模式须要依靠远程团队正确完毕工作。故事中体现出远程团队怎样协作。怎样跨越距离的障碍&#xff0c;怎样建立信任&#xff0c;怎样完毕任务。即将出版的《高能协作&#xff1a;远程战地指南》…

混沌数学之吕陈吸引子

吕陈吸引子&#xff08;Lu Chen attractor&#xff09;也称Lu attractor 吸引子是2002年中国科学院数学与系统科学研究院研究员 吕金虎&#xff08;Jinhu Lu)&#xff0c;Suchun Zhang 和香港城市大学电子工程系讲座教授陈关荣&#xff08; Guangrong Chen &#xff09;发现和分…

整数反转

给出一个 32 位的有符号整数&#xff0c;你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321示例 2: 输入: -123 输出: -321示例 3: 输入: 120 输出: 21注意: 假设我们的环境只能存储得下 32 位的有符号整数&#xff0c;则其数值范围为 [−231, 231 −…

C# char[]与string之间的相互转换

string 兑换 Char[] string ss "abcdefg";char[] cc ss.ToCharArray();Char[] 转换成string string s new string(cc);byte[] 与 string 之间的转换 byte[] bb Encoding.UTF8.GetBytes(ss);string s Encoding.UTF8.GetString(bb);string[] 转换成string string …

java 直接 访问WebSphere JNDI

代码如下: Hashtable<String, String> env new Hashtable<String, String>();env.put(Context.INITIAL_CONTEXT_FACTORY, "com.ibm.websphere.naming.WsnInitialContextFactory");env.put(Context.PROVIDER_URL, "iiop://localhost:2809");Co…

Standard C++ Episode 7

六、C的I/O流库 C&#xff1a;fopen/fclose/fread/fwrite/fprintf/fscanf/fseek/ftell... C&#xff1a;对基本的I/O操作做了类的封装&#xff0c;其功能没有任何差别&#xff0c;用法和C的I/O流也非常近似。 七、格式化I/O <</>> 1 /*2 *格式化I/O练习3 */4 #in…

在Android设备与Mac电脑之间传输文件

不同于Windows和Linux&#xff0c;Android设备连接到Mac电脑上是看不见挂载的目录的&#xff0c;既然看不到了Android设备的挂载目录&#xff0c;如何在Android设备与Mac电脑之间传输文件呢&#xff1f; 原来Android官方提供了传输文件的工具&#xff01;访问www.android.com/f…

mysql语句在node.js中的写法

总结一下mysql语句在node.js中的各种写法&#xff0c;参考了npm网站mysql模块给的实例。 查询 select //1 db.query(select * from tuanshang_users where user_id < 10,function(err,results,fields){//if(err) throw err;console.log( results );if(!!results.length){con…

jqPlot图表插件学习之折线图-散点图-series属性

一、准备工作 首先我们需要到官网下载所需的文件&#xff1a; 官网下载&#xff08;笔者选择的是jquery.jqplot.1.0.8r1250.zip这个版本&#xff09; 然后读者需要根据自己的情况新建一个项目并且按照如下的方式加载对应的js和css&#xff08;因为笔者在VS2012环境下新建的&…

node.js基础:数据存储

无服务器的数据存储 内存存储 var http require(http); var count 0; //服务器访问次数存储在内存中 http.createServer(function(req,res){res.write(hello count);res.end(); }).listen(3000);    基于文件的存储 node.js中主要用fs文件系统模块来管理文件的存储。 文件…

CUDA 6.5 VS2013 Win7:创建CUDA项目

运行环境&#xff1a; Win7VS2013CUDA6.5 1.创建win32空项目 2.右键项目解决方案-->生成项目依赖项-->生成自定义 3.右键项目解决方案-->属性-->配置属性-->常规-->平台工具集 配置属性-->VC目录-->包含目录&#xff0c;添加 $(CUDA_INC_PATH) 连接器-…

c/c++编码规范(2)--作用域

2. 作用域 静止使用class类型的静态或全局变量。 6. 命名约定 6.1. 函数名&#xff0c;变量名&#xff0c;文件名要有描述性&#xff0c;少用缩写。 6.2. 文件命名 6.2.1. 文件名要全部用小写。可使用“_”或"-"&#xff0c;遵从项目规范&#xff0c;没有规范&#x…