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

pom配置文件重要标签探究

文章目录

  • dependencies标签
  • dependencyManagement标签
  • 两者辨析
  • repositories标签
    • properties标签

dependencies标签

  • <dependencies>标签用于指定项目的依赖项列表。这些依赖项可以是应用程序代码所需的库,也可以是Spring Boot和其他第三方库。
  • <dependencies>标签内的依赖仅适用于当前模块
    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId><version>2.5.4</version></dependency><dependency><groupId>com.example</groupId><artifactId>my-library</artifactId><version>1.0.0</version></dependency>
    </dependencies>
    
    • <groupId>依赖项所属的组织或公司
    • <artifactId>依赖项的名称
    • <version>依赖项的版本号

dependencyManagement标签

  • <dependencyManagement>标签用于集中管理项目的依赖项版本**。在这个标签内的有依赖项及其版本,但不会实际将它们添加到项目的依赖项列表中**。
  • ** <dependencyManagement>标签中的依赖项版本会被子模块继承并应用于项目的依赖项解析。确保在整个项目中使用相同的依赖项版本。**
    <dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.5.4</version><type>pom</type><scope>import</scope></dependency></dependencies>
    </dependencyManagement>
    

两者辨析

<dependencies><dependencyManagement>
定义位置在每个模块的 pom.xml 文件中在父模块的 pom.xml 文件中
功能指定项目的依赖项列表,并添加到依赖项解析中集中管理项目的依赖项版本,不直接添加到依赖项解析中
作用范围仅适用于当前模块可以被子模块继承,确保整个项目使用相同的依赖项版本
版本号可以在每个依赖项中指定版本号通常使用一个引用(如 Spring Boot 官方引用)来指定所有依赖项的版本号
导入方式直接将依赖项添加到项目的依赖项解析中使用 <scope>import 的依赖项实现版本继承
优点灵活,可以在每个模块中定制依赖项版本统一管理依赖项版本,确保一致性
缺点需要在每个模块中重复指定依赖项版本无法针对不同的子模块使用不同的依赖项版本
  • <dependencies>标签用于在每个模块的pom.xml文件中指定依赖项列表,并直接添加到依赖项解析中。它提供了灵活性,可以在每个模块中定制依赖项版本。但需要在每个模块中重复指定依赖项版本。

  • <dependencyManagement>标签用于集中管理项目的依赖项版本,在父模块的pom.xml文件中定义。它可以被子模块继承,确保整个项目使用相同的依赖项版本。通常使用一个引用(如Spring Boot官方引用)来指定所有依赖项的版本号,并通过<scope>import的依赖项实现版本继承。

repositories标签

  • <repositories>标签是用于配置项目的特殊仓库(repository)信息+指定获取项目的依赖项的地址。仓库是存储和提供依赖项的地方,例如 Maven Central Repository、JCenter等。
  • <repositories>标签中,列出项目所需的所有仓库,并指定URL和其他相关信息。当构建项目时,构建工具(例如Maven)会根据配置的仓库信息从相应的仓库中下载所需的依赖项。
<repositories><repository><id>central</id><name>Maven Central Repository</name><url>https://repo.maven.apache.org/maven2</url></repository><repository><id>jcenter</id><name>JCenter</name><url>https://jcenter.bintray.com</url></repository>
</repositories>
  • 每个仓库由以下元素组成:
    • <id>: 仓库唯一标识符(必须),用于在配置文件中引用该仓库。
    • <name>: 仓库名称(非必须),用于提供对仓库的描述。
    • <url>: 仓库URL(必须),指定从仓库获取依赖项的位置。

properties标签

  • <properties> 标签用于定义项目属性,这些属性可以在项目的 POM 文件中被引用。这种机制允许在 POM 文件中定义一些值,在整个 POM 文件中以及子模块的 POM 文件中重复使用这些值。
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><java.version>11</java.version><spring.version>5.3.9</spring.version>
</properties>
  • 这些属性可以在 POM 文件中的任何地方被引用,如在 <dependencies> 标签中使用 ${java.version} 来指定依赖项的版本号。

使用 <properties> 标签的优点:

  1. 重用性:可以在项目中的多个地方引用同一个属性,避免在多个地方重复定义相同的值。
  2. 易维护性:当需要修改某个值时,只需要在 <properties> 标签中修改一次即可,而不需要在整个 POM 文件中查找并多次修改。
  • 使用 <properties> 标签,更加灵活地管理项目的属性值,避免重复定义,并简化对全局属性的维护。
http://www.lryc.cn/news/259957.html

相关文章:

  • 如何在Ubuntu的Linux系统上搭建nacos集群
  • oracle中的PIVOT函数
  • 【经验分享】gemini-pro和gemini-pro-vision使用体验
  • JS冒泡排序
  • 面向遥感图像的道路区域提取及优化
  • mysql中NULL值
  • [c++] 意识需要转变的一个例子,全局变量的构造函数先于main执行
  • VSCode 配置自动生成头文件
  • 【大数据】Hudi 核心知识点详解(一)
  • windows上抓包出现大包未分片以及关闭tso方法
  • Leetcode 2454. 下一个更大元素 IV
  • 浏览器全屏按键同f11效果
  • CentOS 7.9 安装 k8s(详细教程)
  • 区块链的可拓展性研究【05】闪电网络
  • 如何部署Portainer容器管理工具+cpolar内网穿透实现公网访问管理界面
  • Linux——Samba文件共享服务配置
  • 自动驾驶右向辅助功能规范
  • ASF-YOLO开源 | SSFF融合+TPE编码+CPAM注意力,精度提升!
  • Mac 如何删除文件及文件夹?可以尝试使用终端进行删除
  • 最新Redis7持久化(权威出版)
  • Redis权限管理体系(一):客户端名及用户名
  • 【数据库设计和SQL基础语法】--查询数据--排序
  • 【sqli靶场】第六关和第七关通关思路
  • c语言快速排序(霍尔法、挖坑法、双指针法)图文详解
  • 【mysql】锁的类型有哪些呢?
  • uniapp 显示文件流图片
  • 多线程------ThreadLocal详解
  • 【C++】POCO学习总结(十六):随机数、密码、时间戳、日期和时间(格式化与解析)、时区、本地时间
  • 打补丁,生成.diff文件
  • 《LeetCode力扣练习》代码随想录——字符串(KMP算法学习补充——针对next数组构建的回退步骤进行解释)