1. 各Maven仓库介绍

Maven仓库包括本地、中央和远程仓库,用于管理项目依赖。本地仓库在首次执行命令时创建,默认位于%USER_HOME%目录下,可修改settings.xml配置。中央仓库包含大量开源Java构件,无需配置。远程仓库是自定义仓库,用于存放中央仓库找不到的依赖。若所有仓库都找不到依赖,Maven构建会失败。阿里云仓库提供国内镜像,加快依赖下载速度。
摘要由CSDN通过智能技术生成

1.各Maven仓库介绍

在Maven的术语中,仓库是一个位置(place)。Maven仓库是项目中依赖的第三方库,这个库所在的位置叫做仓库。在Maven中,任何一个依赖、插件或者项目构建的输出,都可以称之为构件。Maven仓库能帮助我们管理构件(主要是JAR),它就是放置所有JAR文件(WAR,ZIP,POM等文件)的地方。

Maven仓库有三种类型

· 本地(local)

· 中央(central)

· 远程(remote)

1.1. 本地仓库

Maven的本地仓库,在安装Maven后并不会创建,它是在第一次执行Maven命令的时候才被创建。运行Maven的时候,Maven所需要的任何构件都是直接从本地仓库获取的。如果本地仓库没有,它会首先尝试从远程仓库下载构件至本地仓库,然后再使用本地仓库的构件。默认情况下,不管Linux还是Windows,每个用户在自己的用户目录下都有一个路径名为.m2/repository/的仓库目录。
在这里插入图片描述

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将下载依赖文件到指定的路径中。

1.2. 中央仓库

Maven中央仓库是由Maven社区提供的仓库,其中包含了大量常用的库。中央仓库包含了绝大多数流行的开源Java构件,以及源码、作者信息、SCM、信息、许可证信息等。一般来说,简单的Java项目依赖的构件都可以在这里下载到。

中央仓库的关键概念:

· 这个仓库由Maven社区管理。

· 不需要配置。

· 需要通过网络才能访问。

要浏览中央仓库的内容,Maven社区提供了一个 URL:http://search.maven.org/#browse。使用这个仓库,开发人员可以搜索所有可以获取的代码库

1.3. 远程仓库

如果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>

1.4. Maven依赖搜索顺序

当我们执行Maven构建命令时,Maven开始按照以下顺序查找依赖的库:

· 步骤1 - 在本地仓库中搜索,如果找不到,执行步骤2,如果找到了则执行其他操作。

· 步骤2 - 在中央仓库中搜索,如果找不到,并且有一个或多个远程仓库已经设置,则执行步骤 4,如果找到了则下载到本地仓库中以备将来引用。

· 步骤3 - 如果远程仓库没有被设置,Maven将简单的停滞处理并抛出错误(无法找到依赖的文件)。

· 步骤4 - 在一个或多个远程仓库中搜索依赖的文件,如果找到则下载到本地仓库以备将来引用,否则Maven将停止处理并抛出错误(无法找到依赖的文件)。

1.5. Maven阿里云(Aliyun)仓库

Maven仓库默认在国外,国内使用难免很慢,我们可以更换为阿里云的仓库。

修改Maven根目录下的conf文件夹中的settings.xml文件,在mirrors节点上,添加内容如下:

<mirror> 

  <id>aliyunmaven</id>

  <mirrorOf>*</mirrorOf>

  <name>阿里云公共仓库</name>

  <url>https://maven.aliyun.com/repository/public</url>

</mirror>

如果想使用其它代理仓库,可在****节点中加入对应的仓库使用地址。以使用spring代理仓为例:

<repository> 
  <id>spring</id> 
  <url>https://maven.aliyun.com/repository/spring</url>
  <releases> 
    <enabled>true</enabled>
  </releases> 
  <snapshots> 
    <enabled>true</enabled> 
  </snapshots> 
</repository>

在pom.xml文件****节点中加入你要引用的文件信息:

<dependency> 

  <groupId>[GROUP_ID]</groupId>

  <artifactId>[ARTIFACT_ID]</artifactId>

  <version>[VERSION]</version>

</dependency>

执行拉取命令:

mvn install

1.6. 阿里云仓库地址

仓库名称阿里云仓库地址阿里云仓库地址(老版)源地址
centralhttps://maven.aliyun.com/repository/centralhttps://maven.aliyun.com/nexus/content/repositories/centralhttps://repo1.maven.org/maven2/
jcenterhttps://maven.aliyun.com/repository/publichttps://maven.aliyun.com/nexus/content/repositories/jcenterhttp://jcenter.bintray.com/
publichttps://maven.aliyun.com/repository/publichttps://maven.aliyun.com/nexus/content/groups/publiccentral****仓和jcenter仓的聚合仓
googlehttps://maven.aliyun.com/repository/googlehttps://maven.aliyun.com/nexus/content/repositories/googlehttps://maven.google.com/
gradle-pluginhttps://maven.aliyun.com/repository/gradle-pluginhttps://maven.aliyun.com/nexus/content/repositories/gradle-pluginhttps://plugins.gradle.org/m2/
springhttps://maven.aliyun.com/repository/springhttps://maven.aliyun.com/nexus/content/repositories/springhttp://repo.spring.io/libs-milestone/
spring-pluginhttps://maven.aliyun.com/repository/spring-pluginhttps://maven.aliyun.com/nexus/content/repositories/spring-pluginhttp://repo.spring.io/plugins-release/
grails-corehttps://maven.aliyun.com/repository/grails-corehttps://maven.aliyun.com/nexus/content/repositories/grails-corehttps://repo.grails.org/grails/core
https://maven.aliyun.com/repository/grails-corehttps://maven.aliyun.com/nexus/content/repositories/grails-corehttps://repo.grails.org/grails/core
apache snapshotshttps://maven.aliyun.com/repository/apache-snapshotshttps://maven.aliyun.com/nexus/content/repositories/apache-snapshotshttps://repository.apache.org/snapshots/
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

静水深流(探索者)

优化算法慢慢学习

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值