maven核心概念 分模块创建项目一继承与聚合概述及父类的版本锁定功能详解

分模块创建项目,预览好处

  1. 分模块创建项目的结果

在这里插入图片描述

  1. 好处

    分模块创建项目好处: 快速构建运行项目。项目架构一目了然。更易于维护扩展。

继承与聚合的概念

  1. maven项目的继承

    1. 继承,主要是为了消除重复配置

      比如:父项目中,可以抽取所有项目都使用的依赖统一在父项目配置。

    2. 父项目,还有一个作用:版本锁定。

  2. 聚合

    聚合,主要是为了快速构建运行项目

  3. 注意

      1. 父项目,也是聚合项目,项目的类型都是pom。
      2. 父项目与聚合项目,里面不写任何一行java代码与配置。
    

4.版本锁定的实现
父项目的另外的作用:版本锁定,统一维护组件的版本。

如何实现版本锁定?

通过:dependencyManagement 表示实现。

<?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.lilei</groupId>
    <artifactId>project_parent</artifactId>
    <!--pom 表示当前项目是一个父项目,或者是一个聚合项目,他们的项目类型都是pom-->
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <!--modules 当前项目有此标签表示当前项目是聚合项目-->
    <modules>
        <!--指定聚合的模块-->
        <module>project_entity</module>
    </modules>

    <!--统一定义各个组件的版本号-->
    <properties>
        <junit_version>4.12</junit_version>
        <spring_version>5.0.2.RELEASE</spring_version>
    </properties>

    <!--父项目(一) 版本锁定-->
    <!--
        dependencyManagement
         1.表示版本锁定
         2.作用:在父项目中统一维护各个组件的版本。一旦父项目进行了版本锁定,子项目继承父项目,
         默认是不可以使用父项目依赖的包的,需要子项目额外添加依赖,只是不用指定版本号。
    -->
    <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit_version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring_version}</version>
        </dependency>
    </dependencies>
    </dependencyManagement>

    <!--父项目(二)抽取公用配置-->
    <!--父项目中:抽取所有子项目公用的依赖配置-->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
    </dependencies>
</project>

猜你喜欢

转载自blog.csdn.net/weixin_44594056/article/details/88540481