Maven - 5 分钟快速通关

目录

一、Maven

1.1、 基础语法

1.2、聚合

1.3、继承

1.4、自定义属性


一、Maven


1.1、 基础语法



    
    4.0.0

    
    cn.itcast.demo
    
    cloud-demo
    
    1.0

    
    
        
            com.alibaba.cloud
            spring-cloud-alibaba-dependencies
            2.2.5.RELEASE
        
    

    
    
        
        
            
            
            
        
    

a)坐标,Maven 中用于描述仓库资源的位置,如下构成:

  1. groupId:定义当前 Maven 项目组织名称,例如 com.mysql
  2. artifactId:定义当前 Maven 项目名称(通常时模块名称,例如 mysql-connector-java )
  3. version:定义当前项目的版本号.

b)依赖配置 dependencies,依赖当前项目运行所需的 jar 包,一个项目可以设置多个依赖dependency.

如果想要主动断开依赖资源(例如一个依赖的内部又连接了其他依赖),就可以使用 exclusion 来排除(要排除的依赖无需指定版本号).

        
            cn.itcast.demo
            feign-api
            1.0
            
                
                    cn.itcast.demo
                    feign-api
                
            
        

c)版本:

SNAPSHOT(快照版本):就是一个测试阶段的版本,会随着开发的进行不断更新.

RELEASE(发布版本): 项目开发到一个稳定的版本,即使进行功能的后续开发,也不会改变当前发布版本内容,这种版本就是发布版本.

1.2、聚合

概念:使用一个“总工程”(一般是父工程)将各个“模块工程”(一般是子工程)汇集起来,作为一个整体对应完整的项目。

好处:

  1. 一键执行 Maven 命令:很多构建命令都可以在“总工程”中一键执行
  2. 配置聚合之后,各个模块工程会在总工程中展示一个列表,让项目中的各个模块一目了然.

Ps:微服务项目中体现的淋漓尽致

使用方式如下:

a)在父工程中的 pom.xml 文件中,定义打包类型为 pom.

    pom

b)定义当前模块进行构件时关联的其他模块名称.

    
        user-service
        order-service
        eureka-server
        feign-api
        gateway
    

Ps:参与聚合的模块最终的执行顺序和模块间的依赖关系有关,与配置顺序无关.

1.3、继承

概念:A 模块(子工程)继承 B 模块(父工程),本质上就是 A 模块中的 pom.xml 文件继承了 B 模块的 pom.xml 文件.

好处:在每一个 module 中各自维护各自的依赖容易发生出入,不易管理,比如在父工程管理的所有模块中,他们因该使用通过一版本的 jar 包,却由于各自管理,容易出现出入.  因此我们可以在父工程中通过 标签定义好依赖规范,让这些子工程去继承他,这样,子工程再引入依赖时就无需指定版本号(会通过父工程管理依赖寻找所需版本).

使用方式如下:

a)在父工程中定义依赖管理.

    
        

            
                com.alibaba.cloud
                spring-cloud-alibaba-dependencies
                2.2.5.RELEASE
                pom
                import
            

        
    

Ps:dependencyManagement 只是声明了依赖,并没有真正引入.

b)在子工程中声明父工程坐标与对应的位置

    
        cloud-demo
        cn.itcast.demo
        1.0
        
        ../pom.xml
    

c)在子工程引入依赖,版本参照父工程的依赖,因此无需指定版本.

        
            com.alibaba.cloud
            spring-cloud-starter-alibaba-nacos-discovery
        

1.4、自定义属性

自定义属性,一般是为了统一管理依赖的版本号.  这就等同于定义变量,方便统一维护.

使用方式如下:

a)定义格式

    
        <自定义名称>指定版本
    
    
        5.1.47
        2.1.1
    

b)调用格式

        
            
            
                mysql
                mysql-connector-java
                ${mysql.version}
            
            
            
                org.mybatis.spring.boot
                mybatis-spring-boot-starter
                ${mybatis.version}
            
        

Maven - 5 分钟快速通关_第1张图片

你可能感兴趣的:(Maven)