Maven项目的继承与聚合

一、Maven项目的继承

  • 继承一般出现在类与类之间的关系中,但是在项目中也存在着这样的继承关系。我们知道在创建一个maven项目的时候,需要给项目配置需要的依赖,maven的继承主要是为了统一依赖的版本。
  • 在父项目 pom.xml 中需要统一的依赖用 <dependencyManagement> 标签。
  • 父项目 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>nz.study</groupId>
        <artifactId>Days42MavenParent</artifactId>
        <!--指定当前项目为父项目-->
        <packaging>pom</packaging>
        <version>1.0-SNAPSHOT</version>
        <modules>
            <module>MavenSon01</module>
            <module>MavenSon02</module>
            <module>MavenSon03</module>
            <module>MavenSon04Parent</module>
        </modules>
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.projectlombok</groupId>
                    <artifactId>lombok</artifactId>
                    <version>1.18.6</version>
                </dependency>
            </dependencies>
        </dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </project>
    
  • 继承的子项目中的pom.xml文件需要添加的依赖需要与母项目中<dependencyManagement>的依赖对应,可以不用写依赖的版本,子项目也可以选择需要的版本,这样的操作类似于继承里的重写。
  • 子项目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">
        <!--指定父项目-->
        <parent>
            <artifactId>Days42MavenParent</artifactId>
            <groupId>nz.study</groupId>
            <version>1.0-SNAPSHOT</version>
        </parent>
        <modelVersion>4.0.0</modelVersion>
        <artifactId>MavenSon01</artifactId>
        <!--引入需要的依赖-->
        <dependencies>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
            </dependency>
        </dependencies>
    </project>
    

二、Maven项目的聚合

  • 聚合在java 中是在A对象功能完整需要另外B对象来实现,所以A类中有着B类对象的引用,但是A对象的生命周期结束,B对象依然可以存在,简而言之就两个对象的生命周期不同。当然在maven中,聚合又是为了解决另外一个问题而存在的一种机制。通常我们的项目都是都模块的,而每个模块又是一个 maven项目,所以每次开发完了编译都需要一个一个模块的去执行,这就违背了maven的自动化理念。

  • Maven聚合实现SSM:将之前项目中的每个部分进行模块化处理,分成独立的子项目,子项目之间又会存在着引用的关系.

  • image
  • 项目的内容与之前相比,没有什么的新的内容,主要是将Pojo、Dao、Service、Web划分成各个子项目,在母项目中创建子项目,子项目中存在着一写引用关系,需要在<dependency>标签中添加依赖。Dao依赖Pojo与数据库交互,Service依赖Dao进行数据传输,Web依赖Service进行数据处理。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容