什么是Maven存储库?
在Maven术语中,存储库是存储所有项目jar,库jar,插件或任何其他项目特定工件的目录,可以是由Maven轻松使用.
Maven存储库有三种类型.下图将提供有关这三种类型的想法.
local
central
remote
本地存储库
Maven本地存储库是计算机上的文件夹位置.它是在第一次运行任何maven命令时创建的.
Maven本地存储库保存项目的所有依赖项(库jar,插件罐等).当您运行Maven构建时,Maven会自动将所有依赖项jar下载到本地存储库中.每次构建项目时,它都有助于避免引用存储在远程机器上的依赖项.
默认情况下,Maven本地存储库由%USER_HOME%目录中的Maven创建.要覆盖默认位置,请在%M2_HOME%\ conf目录中提供Maven settings.xml文件中的另一个路径.
C:/MyLocalRepository
当您运行Maven命令时,Maven会将依赖项下载到您的自定义路径.
中央存储库
Maven中央存储库是Maven社区提供的存储库.它包含大量常用库.
当Maven在本地存储库中找不到任何依赖项时,它会使用以下URL : 开始在中央存储库中搜索; https://repo1.maven.org/maven2/
中央存储库的关键概念如下:<
此存储库由Maven社区管理.
不需要配置.
需要搜索互联网访问权限.
要浏览中央maven存储库的内容,maven社区提供了一个URL : https://search.maven.org/.使用此库,开发人员可以搜索中央存储库中的所有可用库.
远程存储库
有时,Maven找不到提到的依赖关系中央存储库也是如此.然后它停止构建过程并将错误消息输出到控制台.为了防止出现这种情况,Maven提供了 Remote Repository 的概念,它是开发人员自己的包含所需库或其他项目jar的自定义存储库.
例如,使用下面提到的POM.xml,Maven将从同一个pom.xml中提到的远程存储库下载依赖项(在中央存储库中不可用).
4.0.0 com.companyname.projectgroup project 1.0 com.companyname.common-lib common-lib 1.0.0 companyname.lib1 http://download.companyname.org/maven2/lib1 companyname.lib2 http://download.companyname.org/maven2/lib2
Maven依赖关系搜索序列
当我们执行Maven构建命令时,Maven开始按以下顺序查找依赖库 :
第1步 : 在本地存储库中搜索依赖关系,如果找不到,则转到步骤2,否则执行进一步处理.
步骤2 : 如果找不到中央存储库中的搜索依赖项,则提及远程存储库/存储库,然后转到步骤4.否则,将其下载到本地存储库以供将来参考.
第3步 : 如果没有提到远程存储库,Maven只会停止处理并抛出错误(无法找到依赖关系).
步骤4 : 在远程存储库或存储库中搜索依赖项,如果找到,则将其下载到本地存储库以供将来参考.否则,Maven会停止处理并抛出错误(无法找到依赖项).