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>标签用于在每个模块的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> 标签,更加灵活地管理项目的属性值,避免重复定义,并简化对全局属性的维护。
12-15 11:02