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插件配置

 <build>
        <plugins>
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <port>80</port>
                    <path>/</path>
                </configuration>
            </plugin>
        </plugins>
    </build>

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
 <!--识别所有的配置文件-->
    <resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
      <resource>
        <directory>${project.basedir}/src/main/resources</directory>
        <includes>
          <include>**/*.properties</include>
          <include>**/*.xml</include>
        </includes>
        <filtering>false</filtering>
      </resource>
    </resources>

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依赖的继承体系<dependencyManagement>

不加<dependencyManagement>,依赖全部继承

加了不继承

版本锁定

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

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

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

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

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容