Maven – 存储库( Repositories)
什么是Maven存储库?
在Maven术语中,存储库是存储所有项目jar,库jar,插件或任何其他项目特定工件的目录,并且可以由Maven轻松使用。
Maven存储库有三种类型。 下图将给出关于这三种类型的想法。
- local
- central
- remote
本地存储库
Maven本地存储库是计算机上的文件夹位置。 它是在第一次运行任何maven命令时创建的。
Maven本地存储库保存您项目的所有依赖项(库jar,插件罐等)。 当您运行Maven构建时,Maven会自动将所有依赖项jar下载到本地存储库中。 每次构建项目时,它都有助于避免引用存储在远程机器上的依赖项。
默认情况下,Maven本地存储库由Maven在%USER_HOME%目录中创建。 要覆盖默认位置,请在%M2_HOME%\ conf目录中提供Maven settings.xml文件中的另一个路径。
<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在本地存储库中找不到任何依赖项时,它会使用以下URL开始在中央存储库中搜索 – https://repo1.maven.org/maven2/
中央存储库的关键概念如下 –
- 该存储库由Maven社区管理。
- 它不需要配置。
- 它需要搜索互联网访问。
要浏览中央maven存储库的内容,maven社区提供了一个URL – https://search.maven.org/#browse 。 使用此库,开发人员可以搜索中央存储库中的所有可用库。
远程存储库
有时,Maven也没有在中央存储库中找到提到的依赖项。 然后它停止构建过程并将错误消息输出到控制台。 为了防止这种情况,Maven提供了Remote Repository概念,它是开发人员自己的包含所需库或其他项目jar的自定义存储库。
例如,使用下面提到的POM.xml,Maven将从同一pom.xml中提到的远程存储库下载依赖项(在中央存储库中不可用)。
<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开始按以下顺序查找依赖库 –
- Step 1 – 在本地存储库中搜索依赖关系,如果未找到,则转到步骤2,否则执行进一步处理。
- Step 2 – 在中央存储库中搜索依赖关系,如果未找到,则提及远程存储库/存储库,然后转到步骤4.否则,将其下载到本地存储库以供将来参考。
- Step 3 – 如果没有提到远程存储库,Maven只是停止处理并抛出错误(无法找到依赖关系)。
- Step 4 – 在远程存储库或存储库中搜索依赖关系,如果找到,则将其下载到本地存储库以供将来参考。 否则,Maven停止处理并抛出错误(无法找到依赖项)。
最新评论
徒弟可以A师傅,学生可以A老师,为什么外包不能A正式,我觉得很正常。异性相吸这是宇宙真理
PHP天下第一(狗头叼花)
第一个不需要关注公主号直接给激活码的帖子!
客户端超时断开后,服务端如果没有设置超时机制,那也会继续等待处理,万一这期间有消息到了,那不是就接受到消息处理了,但是也没有办法返回到客户端,导致消息丢失。
企业级GO项目开发实战 Kubernetes权威指南 第六版
https://pan.baidu.com/s/1q3bnTncIACKoTZFxvx7BQw?pwd=ii7n
RabbitMQ精讲,项目驱动落地,分布式事务拔高 有吗?
Spring Cloud Alibaba 微服务架构实战 https://pan.baidu.com/s/1jF5voFRoeF0lYAzAPBWSbw?pwd=chqk