当前位置: 首页 > news >正文

Maven 管理依赖的详细步骤

1. 基本依赖管理:

a. 在项目根目录创建 pom.xml 文件(如果不存在)
b. 在 pom.xml 的 标签内添加依赖:

<project><!-- 其他配置 --><dependencies><dependency><groupId>org.example</groupId><artifactId>example-library</artifactId><version>1.0.0</version></dependency></dependencies>
</project>

c. 运行 mvn install 下载依赖

2. 依赖范围(Scope):

可以使用 标签指定依赖的范围:

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope>
</dependency>

常用的 scope 值:

  • compile(默认):在所有阶段都可用
  • provided:编译时需要,但在运行时由 JDK 或容器提供
  • runtime:运行和测试时需要,但编译时不需要
  • test:仅在测试时需要
  • system:类似 provided,但需要显式指定 JAR 文件的位置

3. 排除传递依赖:

使用 标签排除不需要的传递依赖:

<dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>5.3.9</version><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring-jcl</artifactId></exclusion></exclusions>
</dependency>

4. 依赖管理:

在父 POM 中使用 统一管理依赖版本:

<dependencyManagement><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-framework-bom</artifactId><version>5.3.9</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>

5. 属性定义版本:

使用属性定义版本号,方便统一管理:

<properties><spring.version>5.3.9</spring.version>
</properties><dependencies><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>${spring.version}</version></dependency>
</dependencies>

6. 查看依赖树:

使用命令 mvn dependency:tree 查看项目的依赖树结构。

7. 解决依赖冲突:

当遇到依赖冲突时,可以使用 或显式声明来解决:

<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.1-jre</version>
</dependency>

8. 使用 Maven Profile:

通过 Profile 为不同环境配置不同的依赖:

<profiles><profile><id>dev</id><dependencies><!-- 开发环境依赖 --></dependencies></profile><profile><id>prod</id><dependencies><!-- 生产环境依赖 --></dependencies></profile>
</profiles>

9. 使用 Maven 仓库:

配置额外的 Maven 仓库:

<repositories><repository><id>central</id><name>Central Repository</name><url>https://repo.maven.apache.org/maven2</url></repository>
</repositories>

10. 依赖可选性:

使用 <optional> 标签标记可选依赖:```xml
<dependency><groupId>org.example</groupId><artifactId>optional-lib</artifactId><version>1.0</version><optional>true</optional>
</dependency>
```

11. 依赖分析:

使用 `mvn dependency:analyze` 命令分析项目中未使用和未声明的依赖。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Centos安装Jenkins教程详解版(JDK8+Jenkins2.346.1)
  • 8月22日笔记
  • 【微服务部署】Linux部署微服务启动报ORA-01005
  • 网络安全大考,攻防演练驱动企业常态化安全运营升级!
  • Java导出DBF文件(附带工具类)
  • mount的文件系统中文件名显示乱码问题
  • 【SQL】直属部门
  • 深入了解ASPICE框架及相关指导文件
  • Stable Diffusion整合包与手动本地部署结合内网穿透远程AI绘画
  • 高精度夹治具的使用技巧和注意事项
  • spring boot学习第二十篇:使用minio上传下载文件获取文件路径
  • UniApp中的Flex布局技巧
  • 上书房信息咨询:商业项目调研方法有哪些
  • 用ClouDNS注册免费永久域名
  • Ant-Design-Vue快速上手指南 + 排坑
  • 03Go 类型总结
  • docker容器内的网络抓包
  • github从入门到放弃(1)
  • js对象的深浅拷贝
  • JS数组方法汇总
  • Linux快速配置 VIM 实现语法高亮 补全 缩进等功能
  • Mithril.js 入门介绍
  • PHP 小技巧
  • Python利用正则抓取网页内容保存到本地
  • select2 取值 遍历 设置默认值
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • Vue全家桶实现一个Web App
  • Vue实战(四)登录/注册页的实现
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 思维导图—你不知道的JavaScript中卷
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 我是如何设计 Upload 上传组件的
  • 项目实战-Api的解决方案
  • 容器镜像
  • ​Java基础复习笔记 第16章:网络编程
  • ​草莓熊python turtle绘图代码(玫瑰花版)附源代码
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #数据结构 笔记三
  • #职场发展#其他
  • (~_~)
  • (8)STL算法之替换
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (求助)用傲游上csdn博客时标签栏和网址栏一直显示袁萌 的头像
  • (四)Tiki-taka算法(TTA)求解无人机三维路径规划研究(MATLAB)
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)Linux+Windows下安装ffmpeg
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • ... 是什么 ?... 有什么用处?
  • .form文件_一篇文章学会文件上传
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .NET/C# 使窗口永不获得焦点