首页 > 其他分享 >无涯教程-Maven - 存储库(Repositories)

无涯教程-Maven - 存储库(Repositories)

时间:2024-01-13 11:32:02浏览次数:26  
标签:存储 依赖 companyname jar Repositories 无涯 Maven 库中

用Maven术语来说,存储库是一个目录,所有项目jar,库jar,插件或任何其他项目特定的工件都存储在该目录中,并且Maven可以轻松使用它们。

Maven存储库有三种类型。下图说明了这三种类型。

  • local
  • central
  • remote
Repository Structure

本地存储库

Maven本地存储库是计算机上的文件夹位置。首次运行任何maven命令时,将创建它。

Maven本地存储库保留了项目的所有依赖项(库jar,插件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提供了“远程存储库”的概念,它是开发人员自己的自定义存储库,其中包含必需的库或其他项目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按照以下顺序开始寻找依赖库-

  • 步骤1   -  在 本地存储库 中的搜索依赖项(如果未找到),移至步骤2,否则执行进一步的处理。

  • 步骤2   -  中央存储库 中的搜索依赖项(如果未找到并且提到了远程存储库)则转到步骤4。

  • 步骤3   -  如果在远程存储库也未找到,则Maven只能停止处理并抛出错误(找不到依赖项)。

  • 步骤4   -  在远程存储库中搜索依赖项(如果找到),则将其下载到本地存储库中以备将来参考。否则Maven将停止处理并引发错误(无法找到依赖项)。

参考链接

https://www.learnfk.com/maven/maven-repositories.html

标签:存储,依赖,companyname,jar,Repositories,无涯,Maven,库中
From: https://blog.51cto.com/u_14033984/9231173

相关文章

  • 无涯教程-JUnit - 扩展类
    以下是JUnit扩展-CactusJWebUnitXMLUnitCactusCactus是用于对服务器端Java代码(Servlet,EJB,TagLib,Filters)进行单元测试的简单测试框架。Cactus的目的是降低编写服务器端代码测试的成本。它使用JUnit并将其扩展。由几个部分组成-CactusFramework是Cactus的核心,它是提供......
  • 认识Maven标签
    <?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/......
  • 无涯教程-Maven - 环境设置
    Maven是一个基于Java的工具,因此最首要的要求是在您的计算机上安装JDK。第1步-验证Java安装打开控制台并执行以下java命令。OSTaskCommandWindowsOpenCommandConsolec:\>java-versionLinuxOpenCommandTerminal$java-versionMacOpenTerminalmachine:~jo......
  • 无涯教程-Maven - 配置文件
    构建配置文件是一组配置值,可用于设置或覆盖Maven构建的默认值。文件类型构建配置文件主要分为三种类型。Type定义的地方PerProject在项目POM文件pom.xml中定义PerUser在Maven设置xml文件(%USER_HOME%/.m2/settings.xml)中定义Global在Maven全局设置xml文件(%M2_HOME%/co......
  • 无涯教程-JUnit - Eclipse插件
    要使用eclipse设置JUnit,请遵循以下步骤。步骤1-下载JUnit包根据系统上的操作系统下载JUnitjar。OSJar名称Windowsjunit4.10.jarLinuxjunit4.10.jarMacjunit4.10.jar假设您已将上面的JAR文件复制到文件夹C:\>JUnit。步骤2-设定Eclipse环境打开eclipse→......
  • [Maven] 02 - POM模型与常见插件
    POM模型1依赖关系Maven一个核心的特性就是依赖管理。当我们处理多模块的项目(包含成百上千个模块或者子项目),模块间的依赖关系就变得非常复杂,管理也变得很困难。针对此种情形,Maven提供了一种高度控制的方法。通俗理解:依赖谁就是将谁的jar包添加到本项目中。可以依赖中央仓......
  • 无涯教程-JUnit - 参数化测试
    JUnit4引入了称为参数化测试的新功能,参数化测试允许开发人员使用不同的值一次又一次地运行相同的测试。创建参数化测试需要遵循五个步骤。使用@RunWith(Parameterized.class)注释测试类。创建一个用@Parameters注释的公共静态方法,该方法返回对象的集合作为测试数据集。创建一......
  • 无涯教程-JUnit - 异常测试
    JUnit提供了跟踪代码异常处理的选项,您可以测试代码是否引发期望的异常。expected参数与@Test注释一起使用。让无涯教程看看@Test(expected)的作用。创建测试类在C:\>JUNIT_WORKSPACE中创建一个要测试的Java类,例如MessageUtil.java。在printMessage()方法内添加错误条件。......
  • 无涯教程-JUnit - 时间测试
    JUnit提供了一个超时(timeout)选项,如果测试花费的时间超过指定的毫秒数,则JUnit会自动将其标签为失败。timeout参数与@Test注释一起使用。创建测试类在C:\>JUNIT_WORKSPACE中创建一个要测试的Java类,例如MessageUtil.java。在printMessage()方法内添加一个无限的while循环。......
  • 无涯教程-JUnit - Ignore测试
    有时会发生这样的情况,无涯教程的代码在运行测试用例时还没有完全准备好,@Ignore注释在这种情况下会有所帮助。带有@Ignore注释的测试方法将不会执行。如果使用@Ignore注释测试类,则不会执行其所有测试方法。现在看看@Ignore的作用。创建测试类在C:\>JUNIT_WORKSPACE中创建......