【Maven】dependencyManagement节点

2023-10-10 16:32

本文主要是介绍【Maven】dependencyManagement节点,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

dependencyManagement 元素

在Maven中,使用 dependencyManagement 元素来提供一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM中可以看到dependencyManagement元素(也可以在子项目POM中声明)。

使用pom.xml中的dependencyManagement元素能让所有在子项目中引用一个依赖而不用显式的列出版本号 version 。 Maven会沿着父子层向上走,直到找到一个拥有dependencyManagement元素的项目,然后就会使用这个dependencyManagement元素中指定的版本号。(可参见Spring项目中提供的dependencyManagement元素设置)


通过在父pom.xml中指明 dependencyManagement 元素的方式 ,Maven结合项目继承来管理依赖。

在多模块应用中,可能多个子项目会有共同的依赖。此时为了正确运行,必须让所有的子项目使用依赖项的同一版本。必须确保应用的各个项目的依赖项和版本一致,才能保证测试和发布的结果是相同的。因此,应该在顶层的pom中定义共同的依赖关系。


示例:


在顶层应用的pom中,dependencyManagement 段如下:

<dependencyManagement><dependencies ><dependency ><groupId>com.devzuz.mvnbook.proficio</groupId><artifactId>proficio-model</artifactId><version>${project.version}</version></dependency ><dependency ><groupId>com.devzuz.mvnbook.proficio</groupId><artifactId>proficio-api</artifactId><version>${project.version}</version></dependency ><dependency ><groupId>com.devzuz.mvnbook.proficio</groupId><artifactId>proficio-core</artifactId><version>${project.version}</version></dependency ><dependency ><groupId>com.devzuz.mvnbook.proficio</groupId><artifactId>proficio-store-memory</artifactId><version>${project.version}</version></dependency ><dependency ><groupId>com.devzuz.mvnbook.proficio</groupId><artifactId>proficio-store-xstream</artifactId><version>${project.version}</version></dependency ><dependency ><groupId>org.codehaus.plexus</groupId><artifactId>plexus-container-default</artifactId><version>1.0-alpha-9</version></dependency ></dependencies >
</dependencyManagement>

顶层POM中的dependencies 与 dependencyManagement 中的 dependencies 元素有一个重要的区别:

dependencyManagement 中的 dependencies 元素只表明依赖项版本的优先选择,并不影响项目的依赖项;而 dependencies 元素则影响项目的依赖项。


在子项目的POM中:

<project><parent><groupId>com.devzuz.mvnbook.proficio</groupId><artifactId>proficio</artifactId><version>1.0-SNAPSHOT</version></parent><modelVersion>4.0.0</modelVersion><artifactId>proficio-api</artifactId><packaging>jar</packaging><name>Proficio API</name><dependencies ><dependency ><groupId>com.devzuz.mvnbook.proficio</groupId><artifactId>proficio-model</artifactId></dependency ></dependencies ></project>

其中没有指明依赖项的版本 version 信息,在顶层POM中的dependencyManagement中表明其优先选择的版本。为使其模块POM完整,其版本信息会注入其中。


只有当外层的dependencies 元素中没有指明版本信息时, dependencyManagement 中的 dependencies 元素才会起作用




这篇关于【Maven】dependencyManagement节点的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/181707

相关文章

C++链表的虚拟头节点实现细节及注意事项

《C++链表的虚拟头节点实现细节及注意事项》虚拟头节点是链表操作中极为实用的设计技巧,它通过在链表真实头部前添加一个特殊节点,有效简化边界条件处理,:本文主要介绍C++链表的虚拟头节点实现细节及注... 目录C++链表虚拟头节点(Dummy Head)一、虚拟头节点的本质与核心作用1. 定义2. 核心价值二

IDEA Maven提示:未解析的依赖项的问题及解决

《IDEAMaven提示:未解析的依赖项的问题及解决》:本文主要介绍IDEAMaven提示:未解析的依赖项的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录IDEA Maven提示:未解析的依编程赖项例如总结IDEA Maven提示:未解析的依赖项例如

如何使用Maven创建web目录结构

《如何使用Maven创建web目录结构》:本文主要介绍如何使用Maven创建web目录结构的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录创建web工程第一步第二步第三步第四步第五步第六步第七步总结创建web工程第一步js通过Maven骨架创pytho

Maven中的profiles使用及说明

《Maven中的profiles使用及说明》:本文主要介绍Maven中的profiles使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录主要用途定义 Profiles示例:多环境配置激活 Profiles示例:资源过滤示例:依赖管理总结Maven 中的

Maven 配置中的 <mirror>绕过 HTTP 阻断机制的方法

《Maven配置中的<mirror>绕过HTTP阻断机制的方法》:本文主要介绍Maven配置中的<mirror>绕过HTTP阻断机制的方法,本文给大家分享问题原因及解决方案,感兴趣的朋友一... 目录一、问题场景:升级 Maven 后构建失败二、解决方案:通过 <mirror> 配置覆盖默认行为1. 配置示

maven私服配置全过程

《maven私服配置全过程》:本文主要介绍maven私服配置全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录使用Nexus作为 公司maven私服maven 私服setttings配置maven项目 pom配置测试效果总结使用Nexus作为 公司maven私

IDEA中Maven Dependencies出现红色波浪线的原因及解决方法

《IDEA中MavenDependencies出现红色波浪线的原因及解决方法》在使用IntelliJIDEA开发Java项目时,尤其是基于Maven的项目,您可能会遇到MavenDependenci... 目录一、问题概述二、解决步骤2.1 检查 Maven 配置2.2 更新 Maven 项目2.3 清理本

maven中的maven-antrun-plugin插件示例详解

《maven中的maven-antrun-plugin插件示例详解》maven-antrun-plugin是Maven生态中一个强大的工具,尤其适合需要复用Ant脚本或实现复杂构建逻辑的场景... 目录1. 核心功能2. 典型使用场景3. 配置示例4. 关键配置项5. 优缺点分析6. 最佳实践7. 常见问题

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

Maven项目中集成数据库文档生成工具的操作步骤

《Maven项目中集成数据库文档生成工具的操作步骤》在Maven项目中,可以通过集成数据库文档生成工具来自动生成数据库文档,本文为大家整理了使用screw-maven-plugin(推荐)的完... 目录1. 添加插件配置到 pom.XML2. 配置数据库信息3. 执行生成命令4. 高级配置选项5. 注意事