pom配置文件重要标签探究

2023-12-14 23:47:01

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> 标签,更加灵活地管理项目的属性值,避免重复定义,并简化对全局属性的维护。

文章来源:https://blog.csdn.net/yang2330648064/article/details/135005244
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。