【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

相关文章

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

使用maven依赖详解

《使用maven依赖详解》本文主要介绍了Maven的基础知识,包括Maven的简介、仓库类型、常用命令、场景举例、指令总结、依赖范围、settings.xml说明等,同时,还详细讲解了Maven依赖的... 目录1. maven基础1.1 简介1.2 仓库类型1.3 常用命令1.4 场景举例1.5 指令总结

SpringBoot项目中Maven剔除无用Jar引用的最佳实践

《SpringBoot项目中Maven剔除无用Jar引用的最佳实践》在SpringBoot项目开发中,Maven是最常用的构建工具之一,通过Maven,我们可以轻松地管理项目所需的依赖,而,... 目录1、引言2、Maven 依赖管理的基础概念2.1 什么是 Maven 依赖2.2 Maven 的依赖传递机

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

关于Maven中pom.xml文件配置详解

《关于Maven中pom.xml文件配置详解》pom.xml是Maven项目的核心配置文件,它描述了项目的结构、依赖关系、构建配置等信息,通过合理配置pom.xml,可以提高项目的可维护性和构建效率... 目录1. POM文件的基本结构1.1 项目基本信息2. 项目属性2.1 引用属性3. 项目依赖4. 构

springboot 加载本地jar到maven的实现方法

《springboot加载本地jar到maven的实现方法》如何在SpringBoot项目中加载本地jar到Maven本地仓库,使用Maven的install-file目标来实现,本文结合实例代码给... 在Spring Boothttp://www.chinasem.cn项目中,如果你想要加载一个本地的ja

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

每天认识几个maven依赖(ActiveMQ+activemq-jaxb+activesoap+activespace+adarwin)

八、ActiveMQ 1、是什么? ActiveMQ 是一个开源的消息中间件(Message Broker),由 Apache 软件基金会开发和维护。它实现了 Java 消息服务(Java Message Service, JMS)规范,并支持多种消息传递协议,包括 AMQP、MQTT 和 OpenWire 等。 2、有什么用? 可靠性:ActiveMQ 提供了消息持久性和事务支持,确保消

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

在cscode中通过maven创建java项目

在cscode中创建java项目 可以通过博客完成maven的导入 建立maven项目 使用快捷键 Ctrl + Shift + P 建立一个 Maven 项目 1 Ctrl + Shift + P 打开输入框2 输入 "> java create"3 选择 maven4 选择 No Archetype5 输入 域名6 输入项目名称7 建立一个文件目录存放项目,文件名一般为项目名8 确定