栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Maven】多模块构建项目的维护

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Maven】多模块构建项目的维护


文章目录
  • 多模块构建维护
    • 一、聚合
    • 二、继承
    • 三、聚合与继承
    • 四、属性
      • 4.1 介绍
      • 4.2 常见的属性及其调用方式
        • 1、自定义属性
        • 2、内置属性
        • 3、setting属性
        • 4、java系统属性
        • 5、环境变量属性


多模块构建维护

可以看到通过上一章的讲解,我们将一个ssm项目分模块管理,形成了pojo、dao、service、controller四个模块,并且逐层递进形成依赖关系,假设此时dao层模块出现了改动,我们该如何进一步管理呢?

一、聚合

聚合用于快速构建maven工程,一次性构建多个项目、模块

操作起来很简单:

  • 创建一个空模块,打包类型定义为pom
  • 定义当前模块进行构建操作时关联其他的模块(绑定)

注:参与合操作的模块最终执行顺序与模块间的依赖关系有关,与配置顺序无关

首先构建一个maven的项目,只留pom.xml文件:

添加项目的管理配置:



    4.0.0

    com.zyx
    maven_ssm
    1.0-SNAPSHOT

    
    pom

    
    
        
        ../maven_ssm_pojo
        ../maven_ssm_dao
        ../maven_ssm_service
        ../maven_ssm_controller
    


对项目进行整体的编译,可以看到结果显示的是所有的模块选项:

install一下:

可以看到对应的文件夹下添加了jar包文件:

返回顶部


二、继承

模块间依赖关系的维护

实际开发过程中,由于每个模块一个负责人,所以会导致每个人使用的相同依赖出现不同版本,可能会引发版本冲突问题。

如上图所示,假设service、dao模块都用到了spring-context依赖,但是一个5.1.9,另一个5.2.0,就有可能引起版本的问题。此时我们可以通过继承实现子工程中沿用父工程(ssm)的配置,统一版本。

首先在父工程中声明其子工程的所需要的所有坐标,并配置声明依赖管理:



    
    
        
        
            com.zyx
            maven_ssm_pojo
            1.0-SNAPSHOT
        

        
            com.zyx
            maven_ssm_dao
            1.0-SNAPSHOT
        

        
            com.zyx
            maven_ssm_service
            1.0-SNAPSHOT
        

        
        
            org.springframework
            spring-context
            5.1.9.RELEASE
        

        
        
            org.mybatis
            mybatis
            3.5.3
        
        
        
            mysql
            mysql-connector-java
            5.1.47
        
        
        
            org.springframework
            spring-jdbc
            5.1.9.RELEASE
        
        
        
            org.mybatis
            mybatis-spring
            2.0.3
        
        
        
            com.alibaba
            druid
            1.1.16
        
        
        
            com.github.pagehelper
            pagehelper
            5.1.2
        

        
        
            org.springframework
            spring-webmvc
            5.1.9.RELEASE
        
        
        
            com.fasterxml.jackson.core
            jackson-databind
            2.9.0
        
        
        
            javax.servlet
            javax.servlet-api
            3.1.0
            provided
        

        
        
        
            junit
            junit
            4.12
        
        
        
            org.springframework
            spring-test
            5.1.9.RELEASE
        
    




    
        
        
            
            
                org.apache.tomcat.maven
                tomcat7-maven-plugin
                2.1
                
                    80
                    /
                
            
        
    

子工程中对应声明使用父工程的依赖配置,同时将子工程所有的版本信息去除:



    com.zyx
    maven_ssm
    1.0-SNAPSHOT
    
    ../maven_ssm/pom.xml



     
     
        org.springframework 
        spring-context
    

可继承的资源:

返回顶部


三、聚合与继承

作用

  • 聚合用于快速构建项目
  • 继承用于快速配置

相同点

  • 聚合与继承的pom.xm文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
  • 聚合与继承均属于设计型模块,并无实际的模块内容

不同点

  • 聚合是在当前模块中配置关系,聚合可以感知到参与聚合的模块有哪些
  • 继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己

返回顶部


四、属性 4.1 介绍

版本统一的重要性

虽然我们可以在父项目中进行依赖资源的统一管理,但是不免我们有时会出错,如上图所示,上下配置的资源版本不一致,这种情况下我们可以增添属性信息避免人为配置的出错。



    5.1.9.RELEASE
    4.12




    
     
        
        
        
            junit
            junit
            ${junit.version}
        
        
        
            org.springframework
            spring-test
            ${spring.version}
        
    

对于我们继承的项目依赖,版本同样可以统一,因为使用的是maven的项目对象版本,在最开始就声明了1.0-SNAPSHOT,所以后面直接使用${version}调用就行了。



    4.0.0

    com.itheima
    ssm
    1.0-SNAPSHOT

    
    pom
    
     
    
        
        
            
            
                com.itheima
                ssm_pojo
                ${version}
            

            
                com.itheima
                ssm_dao
                ${version}
            

            
                com.itheima
                ssm_service
                ${version}
            
    

返回顶部


4.2 常见的属性及其调用方式 1、自定义属性


2、内置属性


3、setting属性


4、java系统属性


5、环境变量属性

返回顶部


暑期编程PK赛 得CSDN机械键盘等精美礼品!
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016942.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号