Maven进阶1 -- 分模块开发、依赖管理、聚合与继承、属性、版本管理、多环境开发、跳过测试

目录

1.分模块开发

将原始模块按照功能拆分成若干个子模块,方便模块间的相互调用,接口共享。

Maven进阶1 -- 分模块开发、依赖管理、聚合与继承、属性、版本管理、多环境开发、跳过测试_第1张图片

 案例:拆分一下这个SSM整合案例

①创建maven模块

Maven进阶1 -- 分模块开发、依赖管理、聚合与继承、属性、版本管理、多环境开发、跳过测试_第2张图片

 demo项目下的pom.xml文件(主要看一下依赖)


    
    
      org.example
      demo_pojo
      1.0-SNAPSHOT
    
    
    
      org.example
      demo_dao
      1.0-SNAPSHOT
    
    
    ...

 demo_pojo项目下的pom.xml文件(关注groupId和artifactId)

org.example
demo_pojo
1.0-SNAPSHOT

  demo_dao项目下的pom.xml文件(关注groupId和artifactId、依赖)

org.example
demo_dao
1.0-SNAPSHOT


    
    
        org.example
        demo_pojo
        1.0-SNAPSHOT
            
    
        org.mybatis
        mybatis
        3.5.13
    

②通过install指令安装到本地仓库

Maven进阶1 -- 分模块开发、依赖管理、聚合与继承、属性、版本管理、多环境开发、跳过测试_第3张图片

2.依赖管理

Maven进阶1 -- 分模块开发、依赖管理、聚合与继承、属性、版本管理、多环境开发、跳过测试_第4张图片

依赖具有传递性,因而demo项目下的pom.xml文件可以简化。


    
    
      org.example
      demo_dao
      1.0-SNAPSHOT
    
    
    ...

可选依赖 -- 对外隐藏当前依赖的资源


    org.example
    demo_dao
    1.0-SNAPSHOT
    false

排除依赖 -- 排除当前依赖中的某个资源


    org.example
    demo_dao
    1.0-SNAPSHOT
    
      
        org.mybatis
        mybatis
      
    

3.聚合

聚合:将多个模块组织成一个整体,同时进行项目构建。

聚合工程:通常是一个不具有业务功能的 “空” 工程(有且仅有一个pom文件)

作用:当工程中某个模块发生更新时,必须保障工程中相关联的模块同步更新。

Maven进阶1 -- 分模块开发、依赖管理、聚合与继承、属性、版本管理、多环境开发、跳过测试_第5张图片

例:①创建一个demo_aggregate项目,设置打包类型为pom

org.example
demo_aggregate
1.0-SNAPSHOT
pom

②设置当前聚合工程所包含的子模块名称



    ../demo
    ../demo_dao
    ../demo_pojo

 Maven进阶1 -- 分模块开发、依赖管理、聚合与继承、属性、版本管理、多环境开发、跳过测试_第6张图片

4.继承

概念:继承描述的是两个工程间的关系,子工程可以继承父工程的配置信息,常见于依赖关系的继承。能够简化配置减少版本冲突

例:在上面聚合工程的基础上修改配置。 

①提取一些公共性的依赖,放到在父工程demo_aggregate的pom.xml中


    
        org.springframework
        spring-webmvc
        6.0.10
    
    ...

 ②在子工程demo、demo_dao和demo_pojo中配置当前工程依赖父工程


  org.example
  demo_aggregate
  1.0-SNAPSHOT
  ../demo_aggregate/pom.xml

③在父工程demo_aggregate的pom.xml中配置子工程中可选的依赖关系


    
        
            junit
            junit
            4.13.2
            test
        
    

在子工程demo中使用父工程中的可选依赖

仅需要配置,无需提供版本,版本由父工程统一提供。

  
    
      junit
      junit
      test
    
  

5.属性

Maven进阶1 -- 分模块开发、依赖管理、聚合与继承、属性、版本管理、多环境开发、跳过测试_第7张图片

例1在配置文件pom.xml中自定义属性,从而简化配置。



    6.0.10



    
        org.springframework
        spring-webmvc
        ${spring.version}
    
    
        org.springframework
        spring-jdbc
        ${spring.version}
    
    
        org.springframework
        spring-test
        ${spring.version}
        test
    

例2资源文件引用属性。

pom.xml文件,自定义属性,配置过滤器



    jdbc:mysql://localhost:3306/ssm_db




    
        
            ${project.basedir}/src/main/resources
            true
        
    

②在资源中引用属性

/src/main/resources/jdbc.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=${jdbc.url}
jdbc.username=root
jdbc.password=123456

6.版本管理

  • SNAPSHOT(快照版本):项目开发过程中临时输出的版本,称为快照版本。
  • RELEASE(发布版本):较为稳定的版本。

7.多环境开发

不同环境下,所需要的配置可能不同。

Maven进阶1 -- 分模块开发、依赖管理、聚合与继承、属性、版本管理、多环境开发、跳过测试_第8张图片

 在demo_aggregate工程的pom.xml文件中配置多环境。


    
    
        env_dep
        
            jdbc:mysql://127.0.0.1:3306/ssm_db
        
        
        
            true
        
    
    
    
        env_pro
        
            jdbc:mysql://127.1.1.1:3306/ssm_db
        
    
    
    
        env_test
        
            jdbc:mysql://127.2.2.2:3306/ssm_db
        
    

8.跳过测试

应用场景:①功能更新中且没有开发完毕。②快速打包

①快捷方式

Maven进阶1 -- 分模块开发、依赖管理、聚合与继承、属性、版本管理、多环境开发、跳过测试_第9张图片

 ②细粒度控制跳过测试


    
        maven-surefire-plugin
            2.19.1
            
            false
            
            
                **/BookServiceTest.java
            
        
    

③maven指令

maven install -D skipTests

Maven进阶1 -- 分模块开发、依赖管理、聚合与继承、属性、版本管理、多环境开发、跳过测试_第10张图片

你可能感兴趣的:(SSM,maven,java,spring)