Maven pom依赖标签

pom文件dependency中的 scope用法 ⽐如,我们开发⼀个web应⽤,在编译时我们需要依赖servlet-api.jar,但是在运⾏时我们不需要该jar包,因为这个jar包已由web服务器提供,如果在打包时⼜被加⼊进去,那么就可能产⽣冲突。maven2.9之后的版本引⼊了⼀个新的功能,可以实现依赖上的多重继承。当依赖的scope为runtime的时候,在运⾏的时候才会依赖,在编译的时候不会依赖。当依赖的scope为compile的时候,那么当前这个依赖的包,会在编译的时候被加⼊进来,并且在打包(mvnpackage)的时候也会被加⼊进来。.... 阅读详情

compile(默认)

当依赖的scope为compile的时候,那么当前这个依赖的包,会在编译的时候被加入进来,并且在打包(mvn package)的时候也会被加入进来。

编译范围有效,在编译与打包时都会加入进去。

 

provided

当依赖的scope为provided的时候,在编译和测试的时候有效,在执行(mvn package)进行打包时不会加入。比如, 我们开发一个web应用,在编译时我们需要依赖servlet-api.jar,但是在运行时我们不需要该 jar包,因为这个jar 包已由web服务器提供,如果在打包时又被加入进去,那么就可能产生冲突。此时我们就可以使用 provided 进行范围修饰。

 

system

与provided相同,不过被依赖项不会从maven仓库获取,而是从本地文件系统拿,需要配合systemPath属性使用。比如:

<dependency>
    <groupId>org.open</groupId>
    <artifactId>open-core</artifactId>
    <version>1.5</version>
    <scope>system</scope>
    <systemPath>${basedir}/WebContent/WEB-INF/lib/open-core.jar</systemPath>
</dependency>

 

runtime

当依赖的scope为runtime的时候,在运行的时候才会依赖,在编译的时候不会依赖。比如,在编译的时候我们不需要JDBC API的jar包,而在运行的时候我们才需要JDBC驱动包。就可以使用runtime修饰。

 

test

当依赖的scope为test的时候,指的的是在测试范围有效,在编译与打包的时候都不会使用这个依赖。

 

import

maven多模块项目结构中,可以使用parent 定义父项目,实现从父项目中继承依赖。但maven只能单继承,即一个项目只能使用一个parent标签定义父项目。

maven2.9之后的版本引入了一个新的功能,可以实现依赖上的多重继承。这个功能可以将依赖配置复杂的pom文件拆分成多个独立的pom文件。这样处理可以使得maven的pom配置更加简洁,同时可以复用这些pom依赖。

比如,我们在开发spring boot 项目的时候,pom中会有如下配置:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.3.3.RELEASE</version>
</parent>

但是,如果该项目是个maven子模块的话,就会出现问题。由于maven类似java是单继承,不能有两个parent,现在<parent></parent>标签已经用来引用父模块,现在又用来引用springboot,就会产生冲突。

那解决办法就是: 使用dependencyManagement引入dependency,并且把scope属性改为import。如下:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>2.1.6.RELEASE</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
 
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

注意:scope的import 属性只能在<dependencyManagement> 中使用,表示从其它的pom文件中导入dependency配置。

网络安全 —— 实验(基于华为eNSP模拟器) 8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)8. 实验八 —— 通过路由的远程管理(基于实验七的基础配置)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)6. 实验六 —— 交换机的远程控制(直接控制和间接控制)5. 实验五 —— 将交换机作为PC端通过交换机相连。5. 实验五 —— 将交换机作为PC端通过交换机相连。4. 实验四 —— 两个PC机通过两台交换机相连。2. 实验二 —— 两个PC机通过交换机相连。2. 实验二 —— 两个PC机通过交换机相连。 阅读详情

相关推荐

ADS1256单端vs差分接法详解:在STM32上实现8通道电压采集与4通道差分测量的实战对比

本文深入解析ADS1256在STM32平台上的单端8通道与差分4通道电压采集方案,详细对比两种接法的硬件设计、软件配置及性能差异。通过CubeMX配置SPI接口和优化数据读取时序,实现高精度测量,适用于工业监测等高要求场景。

weixin_29165465的博客 247

pom依赖中的scope属性

maven打包

m0_56928253的博客 1350

大疆OcuSync vs 传统2.4GHz:深度拆解无人机图传射频模块的硬件差异

本文深度对比了大疆OcuSync与传统2.4GHz无人机图传射频模块的硬件差异,涵盖芯片组、天线系统、PCB设计、散热方案及生产测试等核心环节。重点解析OcuSync的全定制SoC芯片、智能MIMO天线阵列及精密PCB布局如何实现革命性性能提升,为无人机图传技术发展提供专业参考。

u5v6w7的博客 807

Maven pom文件中dependency scope用法

在Maven中依赖的域有:compile、provided、runtime、system、test、import 一、compile(默认) 当依赖的scope为compile的时候,那么当前这个依赖的包,会在编译的时候被加入进来,并且在打包(mvn package)的时候也会被加入进来。编译范围有效,在编译与打包时都会加入进去。 二、provided 当依赖的scope为pro...

aozhenza0058的博客 476

自动驾驶仿真基础:使用Veristand自定义CAN报文的Checksum和Counter

文章目录前言一、关于Checksum的组成形式二、自定义的Checksum方法一1、实现的主要流程图如下:2、方法一的主要算法参考三、自定义的Checksum方法二1、软件及插件下载;2、Custom device的使用;4、Veristand调用Custom Device;5、Veristand发送信号值;6、部署到实时机; 前言 1、现在很多的车厂对于车辆的安全机制非常重视,车厂通过对发送的CAN数据进行加密而形成一种保护机制,而Checksum和Counter是其中的一种保护介质,当CAN报文数据的

zataji的博客 1万+

STM32F030F4P6实战:LL库+DMA驱动WS2812全流程(附避坑指南)

本文详细介绍了如何使用STM32F030F4P6的LL库和DMA驱动WS2812 LED灯带的全流程,包括硬件选型、CubeMX配置、LL库与DMA关键实现、数据格式转换及调试技巧。特别提供了避坑指南,帮助开发者避免常见错误,提升开发效率。

weixin_29194693的博客 485

Maven项目中pom文件依赖的scope作用域

Maven项目中pom文件依赖的scope作用域 在Maven项目中依赖有许多作用域 compile 如果不写,默认是compile。compile表示被依赖项目需要参与当前项目的编译,当然后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。 注:编译,测试,运行,打包。 provided provided意味着打包的时候可以不用包进去,别的设施(Web Container)会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是在打包阶段做了excl

xiaozhuzhuyang的博客 1528

SAP PP模块MRP控制参数实战指南:从NETCH到NEUPL的深度解析

本文深入解析SAP PP模块中MRP控制参数的配置与应用,涵盖NETCH、NETPL和NEUPL三种运行模式的优化策略。通过实战案例和参数对比,帮助用户提升物料需求计划的效率和准确性,优化库存周转率和生产交付能力。

weixin_28419039的博客 245

SpringCloud-6-pom文件中常用的标签

SpringCloud-6-pom文件中常用的标签

时光 806

YOLOv11改进 | Neck篇 | 独创HFPN利用分层特征融合块HFFB模块融合多层次特征改进yolov11(全网独家创新)

本文给大家带来的最新改进是利用分层特征融合块HFFB创新yolov11的neck部分我称之为HFPN,这个模块可以融合局部特征、全局特征、中间特征将三种特征融合在一起辅助yolov11进行检测,经过我的设计分为三种可以针对大目标、小目标、标准目标的检测方式均不同,大家可以根据自己的数据集进行不同的选择,本文的内容为我独家创新。YOLOv11改进系列专栏——本专栏持续复习各种顶会内容——科研必备目录一、本文介绍二、原理介绍三、核心代码四、添加方法4.1 修改一4.2 修改二4.3 修改三4.4 修改四。

Snu77的博客 5220

数控系统(CNC)系列:Hurco VMX42SR_(3).控制系统硬件组成部分

控制箱是CNC系统的核心部分,负责处理所有的控制指令和数据。它通常包含主控板、电源模块、接口板等关键组件。伺服驱动器是CNC系统中的关键组件,负责将主控板发出的控制信号转换为电机所需的驱动电流。它通过闭环控制确保电机的精确运动。电机是CNC系统中的执行机构,负责实现主控板发出的运动指令。常见的电机类型包括步进电机和伺服电机。传感器是CNC系统中的重要组件,用于检测和反馈机床的运行状态。常见的传感器类型包括位置传感器、速度传感器、温度传感器等。电源供应系统为CNC系统的所有组件提供电力。主电源。

2401_87715305的博客 1281

理解maven项目的pom.xml文件中,<scope>标签的作用——作用域以及依赖传递

问题介绍:   在maven项目中,最关键的就是pom.xml这个文件,这个文件是用来导入maven项目依赖的jar包以及一些插件等。   在这个文件中导入jar包使用的标签是<dependency>,而在这个标签下有一个子标签,叫做<scope>,它是有什么用处呢?下面我就来讲讲它的作用。        内容讲解:   <scope>这个...

weixin_30587025的博客 954

李宏毅2025《机器学习》第一讲-生成式AI:技术突破和未来发展

本文基于台湾大学李宏毅教授的“一堂课搞懂生成式人工智慧的技术突破与未来发展”课程内容,系统性地梳理了生成式AI的核心概念、技术原理、发展演进以及未来趋势。文章从AI的“行为”入手,通过生动的实例展示了其强大的生成与推理能力;进而深入剖析其底层运作机制,阐释了“万物皆为令牌(Token)”、自回归生成、Transformer架构等核心原理;接着,文章追溯了通用AI模型从“专才”到“通才”的演进历程;最后,探讨了如何通过微调(Fine-tuning)、模型编辑(Model Editing)等技术赋予AI新的能力

木鱼时刻的专栏 2296

Maven学习知识点整理---pom.xml文件各个标签的作用及配置jar包依赖

pom文件(project object model) pom.xml文件为Maven项目的核心配置文件,Maven的各项插件以及依赖都可以在这里配置 三个必填标签 groupid 公司名 com.xxx artifactId 项目名 version 版本号 dependencies标签:包含很多dependency标签 配置我们项目中需要哪些jar包 maven项目中要想下载指定jar包,就是...

jym的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

阻止maven依赖传递 | 忽略某个依赖 相关的两个pom文件标签

<exclusion>标签与 <optional>标签 | 为啥指定的api不是我指定的版本 | 版本冲突

你个无聊小demo的博客 1889

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

maven项目pom依赖中scope标签的使用

pom.xml中 <dependency> <groupId>com.github.wxiaoqi</groupId> <artifactId>ace-common</artifactId> <version>2.0-SNAPSHOT</version> <scope>provided</scope> </dependency>

qq_44779847的博客 716

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Maven依赖的type标签pom属性配合scope标签import属性

type:默认值为jar。 父pom: <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2....

baidu_36124158的博客 1万+

解决导入maven项目之后pom.xml中的project标签报错:批量删除没有下载完全的pom依赖bat脚本

导入maven项目之后pom.xml中的project标签报错。

学亮编程手记 1659

IntelliJ IDEA中Maven依赖不生效?可能是pom.xml的这个标签在搞鬼

本文深入解析IntelliJ IDEA中Maven依赖失效问题,特别是由pom.xml的dependencyManagement标签引发的'Cannot resolve symbol'错误。通过对比dependencies与dependencyManagement的区别,提供系统化解决方案和高级调试技巧,帮助开发者有效解决依赖管理难题并建立最佳实践。

weixin_28718769的博客 432

maven的pom配置依赖标签 230124

maven的pom配置依赖标签 230124

pyhui的技术博客 127

《Maven技术文档》-pom依赖标签详解-看完小白!秒变大神!

还是发现有的同学对于maven的pom文件的标签不是很知道。毕竟大部分开发的场景都是直接复制粘贴就专注的去写代码了。所以这个文章是给小伙伴们在需要扩展一些知识面或者在一些场景下需要的时候使用。POM文件全称是Project Object Model(项目对象模型)文件,它是Apache Maven项目管理工具中至关重要的配置文件,采用XML格式编写,通常命名为,存放在项目的根目录下。POM文件的主要用途包括以下几个方面:项目描述:依赖管理:构建配置:项目结构规范:插件配置:继承与聚合:属性定义:总的来说,P

阿丹的博客 3018

maven中排除依赖传递可以在pom.xml文件中使用exclusions标签

在项目A中引入项目B的依赖,通过依赖传递,会把项目B中的jar都引进来,如果在项目A中不想使用项目B中的某些jar包,可以使用exclusions标签进行排除,具体该标签的用法: <exclusions> <exclusion> <groupId></groupId> <artifactId></artifac...

【折翼天使不孤单】的博客 9241

Maven中pom文件引入依赖标签dependency的scope属性

依赖中引入了主要用于管理依赖关系的作用范围,目前依赖项的作用域可以使用五个值,compile、runtime、test、provided和system compile:依赖项的默认作用范围,即当没有指定依赖项的scope时默认使用compile。compile范围内的依赖项在所有情况下都是有效的,包括运行、测试和编译时。 runtime:表示该依赖项只有在运行时才是需要的,在编译的时候不需要。这种类型的依赖项将在运行和test的类路径下可以访问,例如jdbc依赖 test:表示该依赖项只对测试时有用,

qq_33610816的博客 1120

Java第四十五天,Maven高级篇(一),依赖冲突、pom常见标签

一、Jar 依赖包冲突问题 1.产生冲突的根源 有多个 jar包 对同一 jar包 同时有依赖关系,而且二者对该 依赖jar 包的版本不一致,最终导致产生 jar包依赖 冲突 2.解决办法 (1)第一声明优先原则 哪个jar包的坐标先定义,该 jar包 就是先声明的;先声明的 jar包 坐标下的依赖包可以优先进入项目中 (2)路径近者优先原则 直接依赖 路径比 传递依赖 路径近,那么最终项目进入的 jar包 会是路径近的直接依赖 直接依赖 ===> 项目中直接导入的 jar包 就是该项

愿你饱经冷暖,仍保纯真 400

Maven项目添加依赖时pom文件中的project标签报错 Duplicated tag: ‘dependencies‘ (position: START_TAG seen ...</build>

Maven项目添加依赖时pom文件中的project标签报错 Duplicated tag: ‘dependencies’ (position: START_TAG seen …\r\n … @84:17) 遇到此问题先别急,把要添加的依赖写进已有的标签就可以了

m0_56058975的博客 2016

springboot项目:maven 的pom文件详解;跳过测试打包,每个标签解释:热部署依赖、dependencyManagement标签、

前言 有时候做微服务或者单个应用时,pom文件不对,或者少一个依赖,导致编码出错,运行出错,会浪费很长时间,所以,特来写一篇博客,也算是对自己的加深印象吧。come on,baby pom.xml <!--热部署 2个pom 缺一不可--> <!--更改后端代码时,按 Ctrl+F9 即可--> <dependency> <groupId&gt...

冯安晨 2348
上一篇: linux 安装 marinDB
下一篇: navicate oracle 过滤时间最大的一条数据
宁漂打工仔
博客等级 码龄9年 1万+粉丝 153原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宁漂打工仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值