SpringBoot中maven的parent标签的来源与详解(二)

maven中出现parent标签,指的是有一个父的pom项目,其中已经加载了很多必须的dependency,还有可选的dependency如下图

因为parent的pom有自定义的spring-boot-starter-web,所以下面的dependency不用写version号

下面以一个完整的例子讲述

项目结构:

1.首先创建一个名为parent的Maven项目,因为是作为一个maven的父pom,所以选择quickstart的jar即可,然后一直next

把不必要的main包都删掉,同时把pom.xml的内容都删去

下面是parent的pom.xml模拟

<?xml version="1.0" encoding="UTF-8"?>

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.demo</groupId>
    <artifactId>parent</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>

    <!--  子项目必有依赖-->
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.6</version>
        </dependency>
    </dependencies>

  <!--  子项目可选依赖,此时子项目导入该包时不需要写版本号-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>MyRepository.org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>4.2.4-RELEASE</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

</project>

然后创建另一个关于web的maven项目(websize),因为是web相关的,因此选择webapp来创建

在websize的pom.xml中加入parent依赖,此时会自动加载parent的<dependencies>的包,而<dependencyManagement>中的<dependencies>为可选包,不会在websize中导入,除非自己导入,同时导入时不需要写版本号都行。

下面是websize的pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.demo</groupId>
    <artifactId>websize</artifactId>
    <version>1.0.0</version>
    <packaging>war</packaging>

    <parent>
        <groupId>com.demo</groupId>
        <artifactId>parent</artifactId>
        <version>1.0.0</version>
    </parent>

    <!--<dependencies>
        <dependency>
            &lt;!&ndash;因为parent项目有此可选依赖,所以不需要写版本号&ndash;&gt;
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
        </dependency>
    </dependencies>-->

</project>

点击左边maven

成功!

猜你喜欢

转载自blog.csdn.net/qq_37431224/article/details/103852880