maven中<parent>标签作用

1. 问题背景

在 spring 的官网上构建了一个 sprintboot 的项目,下载 zip 包后,可以看见 pom.xml 的有如下代码

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-parent</artifactId>
                <version>2.2.6.RELEASE</version>
                <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>demo</artifactId>
        <version>1.1.4</version>
        <name>demo</name>
        <description>Demo project for Spring Boot</description>

那么 标签在这里的作用是什么呢?

2. pom.xml中标签使用

maven的核心就是pom.xml,使用maven是为了更好的帮项目管理包依赖。

Maven项目之间的继承关系通过表示。

<parent>
    <groupId>com.mycompany.jcat</groupId>
    <artifactId>jcat-bundle</artifactId>
    <version>2.0</version>
    <relativePath>../jcat-bundle</relativePath>
 </parent>

其中的 relativePath 给出父项目相对于子项目的路径,这样在构建子项目时首先从该相对路径查找父项目,如果没有才会从本地库或进而远程库中查找父项目。

3. 可以继承的配置

在子项目中,能够继承父项目的如下配置:

  • dependencies
  • developers
  • contributors
  • plugin lists
  • reports lists
  • plugin executions with matching ids
  • plugin configuration
展开剩余53%