Maven项目管理

Maven基础

一. Maven是什么?

  • 本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
  • POM(Project Object Model):项目对象模型
image-20210819112522459

二.Maven作用

  • 项目构建:提供标准的,跨平台的自动化项目构建方式
  • 依赖管理:方便快捷的管理项目依赖的资源jar包,避免资源间版本冲突的问题

三.Maven下载安装

省略

四.Maven仓库

1.仓库概念

image-20210819113128973
image-20210819113254597

2.坐标

  • 什么是坐标? Maven中坐标用来描述参股中资源位置

  • Maven坐标主要组成:

    groupId:定义当前Maven项目的隶属组织名称(通常是域名反写)

    artifactId:定义当前Maven项目的名称(通常是模块名称)

    version:定义当前项目的版本号

    packing:定义当前项目的打包方式

  • Maven坐标作用:使用的唯一标识,识别资源位置

3.Maven仓库配置

  • 本地仓库配置
  • 阿里云镜像仓库配置

五.Maven项目结构

image-20210819114742021
image-20210819120512453

六.tomact插件配置

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

1.第一种

image-20210819131006186

2.第二种

image-20210819130927174

七.依赖管理-依赖配置和依赖传递

1.依赖传递

image-20210819131413986

2.依赖传递冲突问题

  • 路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高
  • 声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的
  • 特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的

3.排除依赖 主动 or 被动

被动

image-20210819132014360

主动

image-20210819132138951

4.依赖范围

image-20210819132456807
image-20210819132713064

5.依赖范围的传递性 了解

image-20210819133049923

八.生命周期与插件

image-20210819160807909
image-20210819160835243
image-20210819160821933
image-20210819160846789
image-20210819134703184
image-20210819160928956

Maven高级

1.工程模块与模块划分

image-20210819161510509

2.分模块开发设计

POJO

image-20210819161535713

DAO

image-20210819161546298

SERVICE

image

CONTROLLER

image-20210819161800828

3.聚合 子工程同时打包安装部署

image-20210819162339352
image-20210819162400272

4.继承

image-20210819163109463

继承作用方式

image-20210819163121001

继承依赖定义

image-20210819163202518

继承依赖使用

image-20210819163215607

继承的资源

image-20210819163237569

5.继承和聚合

image-20210819163447191

6.属性

image-20210819163643695

自定义属性

image-20210819163713111

内置属性

image-20210819163728511
image-20210819163755834
image-20210819163803749
image-20210819163812314

7.版本管理

image-20210819163916646
image-20210819163928184

8.资源文件配置

资源配置多文件维护

image-20210819164027526

配置文件引用pom属性

image-20210819164105831
image-20210819164622261
 
    
      
        src/main/java
        
          **/*.properties
          **/*.xml
        
        false
      
      
        ${project.basedir}/src/main/resources
        
          **/*.properties
          **/*.xml
        
        false
      
    

9.多开发环境配置

image-20210819165329160

多环境配置

image-20210819165403973

加载指定环境

image-20210819165517276

10.跳过测试

![image-20210819165716908](https://upload-images.jianshu.io/upload_images/26099831-b905a40456094e02.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

使用命令行跳过测试

image-20210819165733478

使用界面跳过测试

image-20210819165746580

使用配置文件跳过测试

image-20210819165803766

问题?

1.Maven打包后各目录的含义

image-20210819120632048

2.如何解决版本冲突? 自动吗?

3.Maven打成jar包后各目录含义

site生命周期作用

4.pom和jar和war的区别

pom:打出来可以作为其他项目的maven依赖,在工程A中添加工程B的pom,A就可以使用B中的类。用在父级工程或聚合工程中。用来做jar包的版本控制。

jar包:通常是开发时要引用通用类,打成jar包便于存放管理。当你使用某些功能时就需要这些jar包的支持,需要导入jar包。

war包:是做好一个web网站后,打成war包部署到服务器。目的是节省资源,提供效率。

5.Maven生命周期和插件的区别

生命周期是依靠插件执行的,内部集成调用了很多插件

6.maven依赖的继承体系

不加,依赖全部继承

加了不继承

版本锁定

面对众多的依赖,有一种方法不用考虑依赖路径、声明优先等因素,可以采用直接锁定版本的方法确定依赖构件的版本

版本锁定后,系统会以锁定的版本的为准添加到工程中,此方法在企业开发中常用。

7.idea只是工具本质到本地仓库中寻找

8.Maven项目打包之后会不会把他依赖的jar包一起打包

9.如果依赖自己的本地仓库的其他jar包要是部署到其他地方是不是要一起部署

你可能感兴趣的:(Maven项目管理)