maven的pom.xml中repositories和distributionManagement使用

 更新时间:2024年03月29日 14:31:15   作者:黑白独行  
这篇文章主要介绍了maven的pom.xml中repositories和distributionManagement使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

repositories 远程仓库配置

在maven中pom.xml是Maven进行工作的主要配置文件

它的作用包括:配置Maven项目中需要使用的远程仓库,Maven项目的资源依赖关系等。

其中pom是Project Object Model(项目对象模型)的简称。

在pom.xml中repositories标签的作用是用来配置maven项目的远程仓库。

示例如下:

<repository>
    <id>nexus</id><!--远程仓库唯一标识符 -->
    <name>Private Repository</name><!--描述 -->
    <url><!--远程仓库url --></url>
    <layout>default</layout>
    <releases>  
        <enabled>true</enabled>  
    </releases>  
    <snapshots>
       <enabled>true</enabled>
       <updatePolicy>always</updatePolicy>
    </snapshots>
</repository>

我们先看一下的配置,你可以在它下面添加多个 ,每个都有它唯一的ID,一个描述性的name,以及最重要的,远程仓库的url。

此外,true告诉Maven可以从这个仓库下载releases版本的构件,而false告诉Maven不要从这个仓库下载snapshot版本的构件。

禁止从公共仓库下载snapshot构件是推荐的做法,因为这些构件不稳定,且不受你控制,你应该避免使用。

当然,如果你想使用局域网内组织内部的仓库,你可以激活snapshot的支持

layout:用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)。

Maven 2为其仓库提供了一个默认的布局;然而,Maven 1.x有一种不同的布局。

我们可以使用该元素指定布局是default(默认)还是legacy(遗留)。

distributionManagement 分发构件到远程仓库

mvn install 会将项目生成的构件安装到本地Maven仓库,mvn deploy 用来将项目生成的构件分发到远程Maven仓库。

本地Maven仓库的构件只能供当前用户使用,在分发到远程Maven仓库之后,所有能访问该仓库的用户都能使用你的构件。

我们需要配置POM的来指定Maven分发构件的位置,

如下:

<!-- 定义snapshots库和releases库的nexus地址 -->
<distributionManagement>
    <repository>
        <!-- 库的id -->
        <id>nexus-releases</id>
        <!-- 库的url -->
        <url>https://172.17.103.59:8081/nexus/content/repositories/releases/</url>
    </repository>
    <snapshotRepository>
        <id>nexus-snapshots</id>
        <url>https://172.17.103.59:8081/nexus/content/repositories/snapshots/</url>
    </snapshotRepository>
</distributionManagement>

如果是快照版本,执行mvn deploy时会自动发布到快照版本库中。

而使用快照版本的模块,在不更改版本号的情况下,直接编译打包时,maven会自动从镜像服务器上下载最新的快照版本。

如果是正式发布版本,那么在执行mvn deploy时会自动发布到正式版本库中,而使用正式版本的模块。

在不更改版本号的情况下,编译打包时,如果本地已经存在该版本的模块则使用本地的而不是主动去镜像服务器上下载。

需要注意的是,settings.xml中server元素下id的值必须与POM中repository或snapshotRepository下id的值完全一致。

将认证信息放到settings下而非POM中,是因为POM往往是它人可见的,而settings.xml是本地的。

代码如下:

<settings>
    ...    
    <servers>
        <server>
            <id>nexus-releases</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
        <server>
            <id>nexus-snapshots</id>
            <username>admin</username>
            <password>admin123</password>
        </server>
    </servers>
    ...
</settings>

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MyBatis-plus实现逆向生成器

    MyBatis-plus实现逆向生成器

    本文主要介绍了MyBatis-plus实现逆向生成器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • Kotlin常用函数let,with,run,apply用法与区别案例详解

    Kotlin常用函数let,with,run,apply用法与区别案例详解

    这篇文章主要介绍了Kotlin常用函数let,with,run,apply用法与区别案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-09-09
  • Java Swing BoxLayout箱式布局的实现代码

    Java Swing BoxLayout箱式布局的实现代码

    这篇文章主要介绍了Java Swing BoxLayout箱式布局的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • 如何使用try-with-resource机制关闭连接

    如何使用try-with-resource机制关闭连接

    这篇文章主要介绍了使用try-with-resource机制关闭连接的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 浅谈java实现背包算法(0-1背包问题)

    浅谈java实现背包算法(0-1背包问题)

    本篇文章主要介绍了浅谈java实现背包算法(0-1背包问题) ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08
  • java解析xml汇总_动力节点Java学院整理

    java解析xml汇总_动力节点Java学院整理

    这篇文章主要介绍了java解析xml汇总_动力节点Java学院整理的相关资料,需要的朋友可以参考下
    2017-07-07
  • JAVA时间日期处理类实例

    JAVA时间日期处理类实例

    这篇文章主要介绍了JAVA时间日期处理类,可实现遍历两个日期之间的每一天的功能,涉及针对日期的常见操作技巧,需要的朋友可以参考下
    2015-04-04
  • java 中二分法查找的应用实例

    java 中二分法查找的应用实例

    这篇文章主要介绍了java 中二分法查找的应用实例的相关资料,希望通过本文大家能掌握二分法的使用方法,需要的朋友可以参考下
    2017-09-09
  • IDEA中已配置阿里镜像但maven无法下载jar包的问题及解决方法

    IDEA中已配置阿里镜像但maven无法下载jar包的问题及解决方法

    这篇文章主要介绍了IDEA中已配置阿里镜像但maven无法下载jar包的问题,本文给大家分享解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • 深入解析Java中volatile的底层原理

    深入解析Java中volatile的底层原理

    这篇文章主要介绍了深入解析Java中volatile的底层原理,volatile关键字用于保证变量的可见性和禁止指令重排序,即当一个线程修改了volatile变量的值,其他线程能够立即看到这个变量的最新值,而不是使用缓存中的旧值,需要的朋友可以参考下
    2023-07-07

最新评论