Maven中Repository和mirror区别

Maven中Repository和mirror的区别是:Maven中的库(repository)可以分为本地库和远程库。本地库在安装Maven的计算机上的指定路径下,本地库中的构件往往是远程库中下载到本地的部分构件,被本地项目所引用。mirror就是镜像,主要提供一个方便地切换远程仓库地址的途径。

Maven中Repository和mirror区别-Worktile社区

repository

Maven中的库(repository)可以分为本地库和远程库。本地库在安装Maven的计算机上的指定路径下(通常是用户主目录下的.m2/repository),本地库中的构件往往是远程库中下载到本地的部分构件,被本地项目所引用。当然,本地项目发布时,默认也发布到本地库中。远程库往往是由第三方提供的,用于发布构件供项目下载使用,如知名的Maven central库。

根据构件的用途,构件可以分为两类,一类是被其他构件依赖的构件(dependencies),这也是Maven库中主要的构件。另一类是插件(plugins),这是一种特殊的构件。对于依赖的构件,其所在的库通过<repositories>设置。但是对于插件的构件,由于插件的特殊性,所以插件库独立于依赖库,使用<pluginRepositories>单独设置。但是由于依赖和插件都属于构件,所以<repositories>和<pluginRepositories>中的设置基本一致。

如果一个项目需要依赖一个构件,Maven编译的时候会首先从本地库查找该构件。如果本地库中没有,再根据配置的远程库信息,逐个去远程库中查找该构件。

如果在远程库中找到则下载到本地库,如果在所有的远程库中都没有则会抛出编译异常。

Maven中要配置库,可以有多种方式。最直接的是在项目中的pom.xml文件中,通过<repositories>配置库,这样配置的库仅适用于当前项目。也可以通过<profiles>中的<repositories>配置在特定环境下的特殊库,这可以在项目的pom.xml文件中实现,也可以在Maven的settings.xml中实现。

mirror

mirror就是镜像,主要提供一个方便地切换远程仓库地址的途径。比如,上班的时候在公司,用电信的网络,连的是电信的仓库。回到家后,是网通的网络,我想连网通的仓库,就可以通过mirror配置,统一把我工程里的仓库地址都改成联通的,而不用到具体工程配置文件里一个一个地改地址。

mirror的配置在.m2/settings.xml里。如:

<mirrors> 

  <mirror> 

    <id>UK</id> 

    <name>UK Central</name> 

    <url>http://uk.maven.org/maven2</url> 

    <mirrorOf>central</mirrorOf> 

  </mirror> 

</mirrors> 

这样的话,就会给上面id为central的远程仓库做了个镜像。以后向central这个仓库发的请求都会发到http://uk.maven.org/maven2而不是http://repo1.maven.org/maven2了。

<mirrorOf>central</mirrorOf>里是要替代的仓库的id。如果填*,就会替代所有仓库。

延伸阅读:

什么是maven?

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

文章标题:Maven中Repository和mirror区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37850

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月12日 下午4:51
下一篇 2023年2月12日 下午4:53

相关推荐

  • 弹性云服务器由哪些部分组成

    弹性云服务器是由CPU、内存、操作系统、云硬盘组成的最基础的计算组件。弹性云服务器创建成功后,可以像使本地PC或物理服务器一样,使用弹性云服务器。弹性云服务器的开通,只需要指定CPU、内存、操作系统、规格、登录鉴权方式即可。

    2022年10月13日
    33000
  • 服务器和电脑的差别是什么

    服务器和电脑有以下区别:1、硬件方面;2、在系统方面。服务器内部硬件和一般电脑一样,均是由CPU、内存、主板、显卡、硬盘等组成,服务器由于偏向处理器处理器数据能力,因此很多服务器主板均可以安装多个处理器、多条内存以及更多硬盘。 一、硬件方面 服务器内部硬件和一般电脑一样,均是由CPU、内存、主板、显…

    2023年7月28日
    12700
  • 堆和栈的区别

    堆和栈的区别有:1、存储内容不同;2、管理方式上不同;3、空间大小不同;4、能否产生碎片不同;5、生长方向不同;6、分配方式不同;7、分配效率不同。在函数调用时,栈中存放的是函数中各个参数,堆一般是在堆的头部用一个字节存放堆的大小。

    2023年1月31日
    8300
  • 如何做一个合格的项目经理

    合格的项目经理要具备:一、目标定位能力;二、项目管理知识;三、通用管理知识;四、相关专业知识;五、计划能力;六、组织能力;七、环境适应及人际关系能力;八、责任心。目标定位能力指项目为了达到预期的结果而必须完成一些指标,如质量、工期等。 一、目标定位能力 目标定位能力指项目为了达到预期的结果而必须完成…

    2023年3月30日
    5900
  • synchronized和volatile的区别

    synchronized和volatile的区别在于:1、关键字不同;2、修饰功能不同;3、线程阻塞情况不同;4、原子性不同。volatile 关键字是线程同步的轻量级实现,所以 volatile 性能肯定比synchronized关键字要好 。但是 volatile 关键字只能用于变量而 sync…

    2023年2月12日
    37000
  • 什么时候会报unrecognized selector的异常

    当调用对象的某个方法的时候,如果在当前类中没有找到此方法,那么就到当前类的父类中去寻找,如果在父类中没有找到,那么就去父类的父类中去寻找,一直找到 NSObject 都没有这个方法,就会报 Unrecognized selector 的异常。 当调用对象的某个方法的时候,如果在当前类中没有找到此方法…

    2023年5月29日
    6000
  • 协同办公软件有什么用

    协同办公软件的作用是:一、可以更好的管理团队;二、减少沟通成本;三、提升企业凝聚力;四、减低不必要的损失。在使用协同办公工具的时候,每个人都能够明确责任、遵守规范,可以对工作的流程进行跟踪,管理者可以随时了解工作进度。 一、可以更好的管理团队 在使用协同办公工具的时候,每个人都能够明确责任、遵守规范…

    2023年4月29日
    7000
  • 为什么做内存优化,优化的着手点在哪里

    做内存优化的原因是:一、节省内存空间;二、提高程序的性能;三、改善用户体验;四、低设备功耗;五、避免内存泄漏。随着软件的不断升级,应用程序越来越复杂,需要占用更多的内存空间。而现代移动设备和计算机的内存容量虽然不断增加,但是仍然有限。 一、节省内存空间 随着软件的不断升级,应用程序越来越复杂,需要占…

    2023年5月28日
    5300
  • 进行需求优先级排序的必要性是什么

    进行需求优先级排序的必要性:1、项目资源有限;2、项目成本效益最大化;3、能够最大程度地满足了用户的需求;4、有效避免职业危机感。项目资源有限是指,项目的资源有限无法满足用户的所有需求,管理者需要制定需求优先级满足最紧急的需求。

    2023年1月9日
    28700
  • IT领域,引擎和SDK的区别是什么

    IT领域,引擎和SDK的区别有:1、定义和功能;2、使用场景;3、开发和维护;4、与用户的交互性;5、授权与许可;6、实现方式。其中定义和功能描述了引擎和SDK在IT领域中的基本概念和作用。引擎:通常指软件中的核心部分,负责处理主要逻辑和数据操作。 1、定义和功能 引擎:通常指软件中的核心部分,负责…

    2023年7月30日
    7900

发表回复

登录后才能评论
联系我们
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部