Maven仓库 Maven构建配置 Maven插件 什么是Maven仓库? 在Maven术语中,存储库是一个目录,其中存储了所有项目jar,库jar,插件或任何其他特定于项目的工件,并且可以被Maven轻松使用。 Maven存储库有三种类型。下面的插图将给出关于这三种类型的想法。 本地 中央 远程 本地存储库 Maven本地存储库是您计算机上的文件夹位置。它在第一次运行任何maven命令时被创建。 Maven本地存储库保持你项目的所有依赖(库jars,插件罐等)。当您运行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 的概念,它是开发人员自己的定制存储库,包含所需的库或其他项目罐。 例如,使用下面提到的POM.xml,Maven将从同一个pom.xml中提到的Remote Repositories下载依赖项(在中央存储库中不可用)。 <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会停止处理并抛出错误(无法找到依赖项)。 Maven构建配置 Maven插件