在Maven术语里存储库是一个地方,即目录中所有项目的jar库,插件或任何其他项目特定的器物保存,并可以容易地使用Maven。
Maven库中有三种类型
local
central
remote
Maven 本地存储库是一个在您的计算机上的文件夹位置。它被创建,当你第一次运行maven命令。
Maven的本地资源库让您的项目的所有依赖项(插件库jar文件,jar文件等)。当你运行Maven构建,那么Maven的自动下载到本地存储库中的所有依赖的jar。它有助于避免依赖存储在远程机器上每一个项目时,建立的参考。
Maven 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会下载依赖项(不提供中央存储库)中提到的相同的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的依赖库按以下顺序开始寻找:
Step 1 - 搜索依赖本地资源库,如果没有找到,移动到第2步,否则,如果发现然后做进一步处理。
Step 2 - 搜索依赖中央存储库中,如果没有找到,远程资源库/存储库/被提及,然后移动到步骤4,否则,如果找到,那么它下载到本地存储库中,以备将来参考。
Step 3 - 如果没有提到远程仓库,Maven的只是停止处理并抛出错误(找不到的依赖)。
Step 4 - 远程仓库或储存库中的搜索依赖,如果发现它下载到本地资源库以供将来参考,否则Maven的预期停止处理并抛出错误(找不到的依赖)。