Maven中的库repository详解

 更新时间:2024年01月04日 10:02:39   作者:sgsrj  
Maven中要配置库,可以有多种方式,最直接的是在项目中的pom.xml文件中,通过<repositories>配置库,这样配置的库仅适用于当前项目,这篇文章主要介绍了Maven中的库(repository),需要的朋友可以参考下

一、简介

         所谓的仓库就是用于存放项目需要的jar包的。在我们的maven项目中其实并没有项目所需要的jar包,只在pom.xml文件中记录了jar的坐标。maven依赖管理通过jar的坐标去仓库中下载jar文件。

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

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

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

二、配置repository

        在pom.xml或settings.xml中设置<repositories>,往往需要提供一个<repository>的如下信息:

id,库的ID

name,库的名称

url,库的URL

layout,在Maven 2/3中都是default,只有在Maven 1.x中才是legacy

releases,库中版本为releases的构件

snapshots,库中版本为snapshots的构件

        根据构件的版本,可以将构件分为releases类型的构件和snapshots类型的构件。

        对于一个构件,其版本的变化是否会引起库中更新该构件呢?则需要根据库的<releases>或<snapshots>设置。<releases>和<snapshots>的设置参数一致,如下所示:

enabled,是否支持更新

updatePolicy,构件更新的策略,可选值有daily, always, never, interval:X(其中的X是一个数字,表示间隔的时间,单位min),默认为daily

checksumPolicy,校验码异常的策略,可选值有ignore, fail, warn

1. 在pom.xml中配置<repository>

<repositories>
    <repository>
      <releases>
        <enabled>false</enabled>
        <updatePolicy>always</updatePolicy>
        <checksumPolicy>warn</checksumPolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
        <checksumPolicy>fail</checksumPolicy>
      </snapshots>
      <id>codehausSnapshots</id>
      <name>Codehaus Snapshots</name>
      <url>https://repository-master.mulesoft.org/nexus/content/groups/public/</span></url>
      <layout>default</layout>
    </repository>
  </repositories>

2. Settings.xml配置<repository>

<profile>
            <id>nexus-profile</id>
            <repositories>
                <repository>
                    <id>nexus-repo</id>
                    <url>https://nexus3.nx-code.com/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <updatePolicy>always</updatePolicy>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>

三、分类

maven仓库分为两类:

2.1 本地仓库

默认maven会在c盘创建一个.m2的本地仓库。默认位置:用户目录/.m2/repository/,可以修改setting.xml文件来修改本地仓库地址

  <localRepository>D:\software\mvn\m2\repository</localRepository>

2.2 远程仓库

中央仓库:默认的远程仓库。

私有仓库:局域网内的仓库。可以理解为自己公司的仓库,也叫Nexus私服。

镜像仓库:其他公开的资源仓库 例如国内的阿里云,jboss,jcenter 仓库等

到此这篇关于Maven中的库(repository)的文章就介绍到这了,更多相关Maven repository内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现操作JSON的便捷工具类完整实例【重写Google的Gson】

    Java实现操作JSON的便捷工具类完整实例【重写Google的Gson】

    这篇文章主要介绍了Java实现操作JSON的便捷工具类,基于重写Google的Gson实现,涉及java针对json数据的各种常见转换操作实现技巧,需要的朋友可以参考下
    2017-10-10
  • 使用jsoup解析html的table中的文本信息实例

    使用jsoup解析html的table中的文本信息实例

    今天小编就为大家分享一篇使用jsoup解析html的table中的文本信息实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • springboot controller无效的处理方案

    springboot controller无效的处理方案

    这篇文章主要介绍了springboot controller无效的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java多线程之多线程异常捕捉

    Java多线程之多线程异常捕捉

    在java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的checked exception处理掉,通过此篇文章给大家分享Java多线程之多线程异常捕捉,需要的朋友可以参考下
    2015-08-08
  • Java填充替换数组元素实例详解

    Java填充替换数组元素实例详解

    这篇文章主要通过两个实例说明Java填充和替换数组中元素的方法,需要的朋友可以参考下。
    2017-08-08
  • Windows下RabbitMQ安装及配置详解

    Windows下RabbitMQ安装及配置详解

    本文主要介绍了Windows下RabbitMQ安装及配置详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 一文了解Java读写锁ReentrantReadWriteLock的使用

    一文了解Java读写锁ReentrantReadWriteLock的使用

    ReentrantReadWriteLock称为读写锁,它提供一个读锁,支持多个线程共享同一把锁。这篇文章主要讲解一下ReentrantReadWriteLock的使用和应用场景,感兴趣的可以了解一下
    2022-10-10
  • 如何在IDEA中查看依赖关系的方法步骤

    如何在IDEA中查看依赖关系的方法步骤

    这篇文章主要介绍了如何在IDEA中查看依赖关系的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • idea统计代码行数Statistic的步骤详解

    idea统计代码行数Statistic的步骤详解

    这篇文章主要介绍了idea统计代码行数Statistic的步骤详解,本文通过使用Statistic插件操作的,通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • JAVA如何自动下载SSL证书并导入到本地

    JAVA如何自动下载SSL证书并导入到本地

    这篇文章主要介绍了JAVA如何自动下载SSL证书并导入到本地问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07

最新评论