什么是Maven资源库?

在 Maven 术语里存储库是一个目录,即目录中保存所有项目的 jar 库,插件或任何其他项目特定文件,并可以容易由 Maven 使用。

Maven库中有三种类型

  • local - 本地库

  • central - 中央库

  • remote - 远程库

本地库

Maven 本地存储库是一个在本地计算机上的一个文件夹位置。当你第一次运行 maven 命令的时候它就被创建了。

Maven 的本地资源库让您的项目可依赖这些项目(插件库 jar 文件,jar文件等)。当运行 Maven 构建,那么 Maven 会自动下载所有依赖的jar到本地存储库中。它有助于避免依赖存储在远程机器上的项目建立参考。

Maven 本地存储库,默认情况下创建在 %USER_HOME% 目录。要覆盖默认位置,可在 Maven 的 settings.xml 文件中修改 %M2_HOME%conf 目录指向另一个路径。

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository>C:/MyLocalRepository</localRepository>
</settings>

当运行 Maven 命令,Maven 会下载依赖到您的自定义路径。

中央储存库

Maven中央存储库是由Maven社区提供的资源库。它包含了大量的常用程序库。

当Maven没有在本地存储库找到任何依赖,就会开始搜索在中央存储库,它会使用下列网址: http://repo1.maven.org/maven2/

中央仓库的关键概念:

  • 此系统信息库由Maven社区管理

  • 它不要求配置

  • 搜索时需要互联网接入

要浏览中央 Maven 仓库的内容,Maven 社区提供了一个网址:http://search.maven.org/#browse 。使用这个库,开发人员可以在中央存储库中搜索所有可用的库。

远程仓库

有时,Maven不能从依赖中央存储库找到上述库,那么它停下构建过程并输出错误消息到控制台。为了防止这种情况,Maven提供远程仓库概念,这是开发商的自定义库包含所需的库文件或其他项目 jar 文件。

例如,使用以下提到的 pom.xml,Maven 会从远程仓库下载依赖项(不在中央存储库中提供)。

<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.companyname.projectgroup</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<dependencies>
<dependency>
<groupId>com.companyname.common-lib</groupId>
<artifactId>common-lib</artifactId>
<version>1.0.0</version>
</dependency>
<dependencies>
<repositories>
<repository>
<id>companyname.lib1</id>
<url>http://download.companyname.org/maven2/lib1</url>
</repository>
<repository>
<id>companyname.lib2</id>
<url>http://download.companyname.org/maven2/lib2</url>
</repository>
</repositories>
</project>

Maven 依赖搜索序列

当我们执行 Maven 构建命令,Maven 依赖库按以下顺序进行搜索:

  • 第1步 - 搜索依赖本地资源库,如果没有找到,跳到第2步,否则,如果找到那么会做进一步处理。

  • 第2步 - 搜索依赖中央存储库,如果没有找到,则从远程资源库/存储库中,然后移动到步骤4,否则如果找到,那么它下载到本地存储库中,以备将来参考使用。

  • 第3步 - 如果没有提到远程仓库,Maven 则会停止处理并抛出错误(找不到依赖库)。

  • 第4步 - 远程仓库或储存库中的搜索依赖,如果找到它会下载到本地资源库以供将来参考使用,否则 Maven 停止处理并抛出错误(找不到依赖库)。

最新文章

  1. etlpy: 并行爬虫和数据清洗工具(开源)
  2. Apache Lucene(全文检索引擎)—搜索
  3. Python之路第一课Day3--随堂笔记(文件操作)
  4. Swift3.0语言教程使用Unicode范式标准化获取字符串
  5. android 布局优化常用技巧
  6. mrunit for wordcount demo
  7. ftp -i -n -v &lt;&lt;! 其中 -n禁止自动登录到初始连接
  8. SpringDataMongoDB介绍(一)-入门
  9. Linux内核学习笔记2
  10. net.sf.json在处理json对象转换为普通java实体对象时的问题和解决方案
  11. struts2.3.15.3中动态方法调用默认是关闭的
  12. poj 2021 Relative Relatives(暴力)
  13. cocos2d-x 实现clash of clans多点聚焦缩放场景
  14. 新RSS reader
  15. 使用强类型实体Id来避免原始类型困扰(一)
  16. 任意activity作为启动页
  17. fileInput插件上传文件
  18. Centos7下搭建SVN服务,本地提交代码自动同步到WEB目录
  19. Saltstack之SSH
  20. Aviator 表达式求值引擎开源框架

热门文章

  1. (原创)舌尖上的c++--相逢
  2. 在vue-cli生成的项目中使用karma+chrome进行单元测试
  3. 【Socket】linux高性能网络服务程序
  4. Python(四)之Python流程控制(if、while、for)
  5. idea svn 使用问题
  6. egret list不显示问题
  7. C#绘制三角形并填充,使用winform实现qq聊天气泡
  8. 图像颜色--opencv scalar
  9. hbase 学习(十二)非mapreduce生成Hfile,然后导入hbase当中
  10. 百度Ueditor设置图片自动压缩