• Maven的聚合 继承 属性 版本管理 多环境资源配置 跳过测试


    光荣在于平淡,艰巨在于漫长。
                       —李梦

    1. 聚合

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

    使用:

    创建一个空模块,打包类型定义为pom

    <packageing>pompackageing>
    
    • 1

    定义当前模块进行构建操作时关联的其他模块名称

    <modules>
        
        <module>../ssm_usermodule> 
        <module>../ssm_commonmodule> 
    modules>
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    2. 继承

    通过继承可以实现在子工程中沿用父工程中的配置,maven中的继承与java中的继承相似,在子工程中配置继承关系

    使用:
    在子工程中声明父工程坐标与对应的位置

    
    <parent> 
        <groupId>com.examplegroupId> 
        <artifactId>ssmartifactId> 
        <version>1.0-SNAPSHOTversion>
         
        <relativePath>../spring-project/pom.xmlrelativePath>
    parent>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    继承依赖定义

    在父工程中定义依赖管理

    
    <dependencyManagement>
         
        <dependencies>
             
            <dependency> 
            <groupId>org.springframeworkgroupId> 
            <artifactId>spring-contextartifactId> 
            <version>5.1.9.RELEASEversion>
            dependency> 
        <dependencies> 
    <dependencyManagement>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    继承依赖使用

    在子工程中定义依赖关系,无需声明依赖版本,默认版本参照父工程中依赖的版本

    <dependencies>
         
        <dependency> 
            <groupId>org.springframeworkgroupId> 
            <artifactId>spring-contextartifactId>
        dependency>
    dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    继承与聚合小结

    作用

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

    相同点

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

    不同点

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

    3. 属性

    上边引入依赖的方式,version版本都是在每个依赖中定义的,我们也可以像代码中一样,定义成一个变量,使用时直接使用这个变量,把版本相关的都放在同一个地方,这样也方便统一管理,

    属性类别

    • 自定义属性
    • 内置属性
    • Setting属性
    • Java系统属性
    • 环境变量属性

    3.1 自定义属性

    等同于变量,方便统一维护

    定义格式:

    
    <properties> 
        <spring.version>5.1.9.RELEASEspring.version> 
        <junit.version>4.12junit.version>
    properties>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    使用格式:

    <dependency> 
        <groupId>org.springframeworkgroupId> 
        <artifactId>spring-contextartifactId> 
        <version>${spring.version}version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    3.2 内置属性

    使用maven的内置属性,快速配置

    调用格式:

    ${basedir}
    ${version}
    
    • 1
    • 2

    3.3 Setting属性

    使用Maven配置文件setting.xml中的标签属性,用于动态配置

    调用格式:

    ${settings.localRepository}
    
    • 1

    3.4 Java系统属性

    读取Java系统属性

    调用格式:

    ${user.home}
    
    • 1

    系统属性查询方式:

    mvn help:system
    
    • 1

    在这里插入图片描述

    使用的时候直接指定=前边的属性名就可以

    3.5 环境变量属性

    使用系统的环境变量作为配置属性

    调用格式:

    ${env.JAVA_HOME}
    
    • 1

    环境变量属性查询方式:

    mvn help:system
    
    • 1

    4. 版本管理

    在这里插入图片描述

    在这里插入图片描述

    5. 资源配置

    开发中,有时候我们希望将spring中的部分配置放在mavenpom文件中进行统一的管理,例如将数据库的连接地址,放在pom中,这样我们只需要维护一个配置文件就可以了

    作用

    在任意配置文件中加载pom文件中定义的属性

    定义和使用

    pom文件中定义

     <jdbc.url>192.168.1.111jdbc.url>
    
    • 1

    在配置文件中使用${jdbc.url}

    开启配置文件加载pom属性

    <resources>
        <resource>
            
            <directory>${project.basedir}/src/main/resourcesdirectory>
            
            <filtering>truefiltering>
        resource>
    resources>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    进行package后查看
    在这里插入图片描述

    这种方式开发中是否使用,仁者见仁 智者见智

    6. 多环境开发配置

     <profiles>
            
            <profile>
                
                <id>pro_envid>
                
                <properties>
                    <jdbc.url>192.168.1.111jdbc.url>
                properties>
                
                <activation>
                    <activeByDefault>trueactiveByDefault>
                activation>
            profile>
            <profile>
                
                <id>dev_envid>
                
                <properties>
                    <jdbc.url>127.0.0.1jdbc.url>
                properties>
            profile>
        profiles>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    打包结果:
    在这里插入图片描述

    也可以通过命令的方式指定环境

    mvn 指令 –P 环境定义id
    mvn install –P pro_env
    
    • 1
    • 2

    7. 跳过测试

    使用场景

    • 整体模块功能未开发
    • 单个功能更新调试导致其他功能失败
    • 快速打包

    7.1 使用命令跳过测试

    mvn 指令 –D skipTests
    
    • 1

    7.2 界面操作跳过测试

    在这里插入图片描述

    7.3 使用配置跳过测试

    <plugin>
        <artifactId>maven-surefire-pluginartifactId>
        <version>2.22.1version>
        <configuration>
            <skipTests>trueskipTests>
            <includes> 
                <include>**/User*Test.javainclude>
            includes>
            <excludes>
                <exclude>**/User*TestCase.javaexclude>
            excludes>
        configuration>
    plugin>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13

    到此,本章内容就介绍完啦,如果有帮助到你 欢迎点个赞👍👍👍吧!! 有问题评论区交流

  • 相关阅读:
    early_init_dt_scan_memory
    LeetCode 0509. 斐波那契数:尝试以四种方式吃透(四种大方法+两种小优化)
    数据治理中的核心元素——元数据
    猿创征文丨赶紧进来看看!!!你可能都不清楚的三种变量和零值比较
    406. 根据身高重建队列
    C++中的多态(下)
    Oracle中给表赋予权限
    视频号小店怎么做?这五个步骤搞明白了,你就知道怎么做店了!
    【freertos】002-posix模拟器设计与cortex m3异常处理
    如何利用分层测试概念设计针对性测试用例
  • 原文地址:https://blog.csdn.net/weixin_43847283/article/details/126571782