Maven(mvn)

在开始之前我先来谈一谈我的学习方法,我在学习认识新东西之前是按照三步走来学习的,即:是什么?做什么?怎么学?

那接下来就让我们按照三步走来学习一下Maven

1.Maven 是什么?

Maven就是服务于Java平台的自动化构建工具;简单来说就是我们的项目管理工具

# 构建什么:把项目工程经过编译,得到的编译结果,部署在服务器上的整个过程;
# 编译:   .java文件通过javac编译器编译成 .class型的字节码文件

2.Maven做什么?

它是一个Apache的开源项目,主要服务于基于Java平台的项目构建、依赖管理和项目信息管理,为了不重复造轮子。

Maven最主要的体现在了2个词 “项目”和“管理”!加在一起就是项目管理。

2.1传统方式对项目的管理

两个项目A,B,项目A需要依赖一些jar包,项目B也需要依赖这些jar包,那么此时如果都把jar包引入到项目中;再比如要更新jar版本,所以又得重新下载,重新部署到项目中(部署到lib中);以上就是在重复造轮子。我们应该把这些所有的jar包放到一个地方,需要用的时候过去取即可。而Maven就帮我们做了这些事情(这就是Maven的项目管理)

2.2Maven对jar包的管理

Maven把我们需要的jar包都放到一个仓库(repository)中,统一管理,(做到复用、多项目可共同使用)每个jar包的对应位置用一个坐标表示;

坐标三要素:文件夹+名字+版本号

如何定位这个位置————文件夹+名字+版本号=坐标 就可以定位到唯一的jar包;

# 关于仓库:本地仓库(本机上从中央仓库下载过来的jar包)中央仓库(Maven免费提供的)远程仓库(企业自己的—>私服)
使用时,若本地仓库可以找到jar包,正常使用;本地仓库找不到jar包,就去远程仓库查找,远程找不到,就去中央查找,若都找不到,就会报错;再任何一个仓库中找到jar包就会下载到本地,做到复用

3.Maven怎么学

3.1Maven如何创建项目

打开编辑器,new一个project

根据 坐标三要素:文件夹+名字+版本号

# groupId:    代表jar包所来源的渠道;对应文件夹的名;com.alibaba;com.duyi;
# artifactId: 代表项目的唯一名字maven-duyi-demo.jar ; common-io.jar
# version:    代表版本号 1.0 2.0 3.01.0-SNAPSHOT(快照版本,不稳定)1.0-RELEASE(发布版本,稳定)

Maven项目打开后就会有约定好的目录结构,不用我们自己再去配置;体现的设计思想就是:“约定优于配置”

Mvn的核心配置文件:pom.xml; 里面含有项目被打包后的坐标三要素

3.2Maven的下载与配置

这部分可以自行参考b站视频,绝对讲得比我好;

3.3Maven依赖的引入

引入一些依赖可以查找坐标的网站https://www.mvnrepository.com/

Maven的依赖有递进关系,项目A依赖了jar包B,而jar包B又依赖了jar包C,所以也相当于项目A依赖着jar包C.

方法:**利用  < dependencies>标签**

3.4Maven依赖的剔除

我们原本只想引入jar包B,不想要jar包C;或者说引入了jar包B,现在不想要了;如何剔除?

方法:利用  < exclusions >标签

3.5Maven依赖的使用

1)我们构建项目的流程如下:

  编译     测试    运行      打包     安装     部署
compile   test  runtime   package  install  deploy

看依赖在哪个过程使用

2)依赖使用的范围

利用< scope >标签声明  代表依赖在哪个过程使用eg:<scope >runtime</scope >
compile  缺省值 (也就是编译时使用) 伴随着项目的整个生命周期而存在
provided 已提供的 代表我们的使用的jar是已经提供好的,不需要再打包到项目最后的jar包里
lruntime 运行时使用
test     测试时使用
system   自定义依赖jar包的位置(不推荐使用)

3.6查看依赖树(查看项目的依赖关系)

查看依赖树的目的:更好的解决jar包冲突的问题

方式一: IDEA右键 ——Diagrams——Show Dependencies(比较直观)
方式二: Terminal中输入:mvn dependency:tree常用的命令

关于Maven(mvn)的简单学习相关推荐

  1. api报错 javaee maven_JavaEE关于Maven的配置与学习

    关于Maven的配置与学习 1. 简介 官方说法:Apache Maven is a software project management and comprehension tool. Based ...

  2. 教育培训课程报名管理系统(学生、教师、管理员)+SSM框架+mysql+tomcat+Maven项目(毕设学习)

    教育培训课程报名管理系统(学生.教师.管理员)+SSM框架+mysql+tomcat+Maven项目(毕设学习)可以用于学习SSM.maven项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示 ...

  3. SSM通用活动报名系统(会员、管理员)+SSM框架+mysql+tomcat+Maven项目(毕设学习)可以用于学习SSM、maven项目入门

    SSM通用活动报名系统(会员.管理员)+SSM框架+mysql+tomcat+Maven项目(毕设学习)可以用于学习SSM.maven项目入门 可以用于课程设计.毕业设计的知识点入门学习 提示:此资源 ...

  4. SQL Server中的锁的简单学习

    原文:SQL Server中的锁的简单学习 简介 在SQL Server中,每一个查询都会找到最短路径实现自己的目标.如果数据库只接受一个连接一次只执行一个查询.那么查询当然是要多快好省的完成工作.但 ...

  5. [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …...

    [Python学习]PycURL简单学习 - limodou的学习记录 - limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source - [Python学习] ...

  6. JavaScript学习笔记04【高级——DOM和事件的简单学习、BOM对象】

    w3school 在线教程:https://www.w3school.com.cn JavaScript学习笔记01[基础--简介.基础语法.运算符.特殊语法.流程控制语句][day01] JavaS ...

  7. 表盘时针的html代码,html5画布操作的简单学习-简单时钟

    html5画布操作的简单学习-简单时针 效果图 一.什么是 Canvas? HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图像. 画布是一个矩形区域,您可以控制其每一像素. ...

  8. QuickSkin简单学习--控制结构

    QuickSkin简单学习 3.控制结构 if if ... endif 结构帮助模板的条件选择. QuickSkin支持和PHP相同的操作符. 比较操作符, 作为名称暗示,允许你比较两个值. 可以是 ...

  9. SSM+Maven+Dubbo+Zookeeper简单项目实战以及易错注意点

    最近为了熟悉Dubbo远程过程调用架构的使用,并结合SSM+Maven整合了简单的一套项目实战 直接看项目结构图 各模块介绍 dubbo-common:存放项目需要的公众类,像查询模型.数据库实体模型 ...

最新文章

  1. 深入解析Angular Component的源码示例
  2. Keil工程Lib库文件的制作和运用
  3. Java中使用mysqldump实现mysql数据库备份并将sql文件打成zip压缩包
  4. 文本分类-TensorRT优化结果对比图
  5. python的sys.path
  6. [css] 移动端1px像素的问题及解决方案是什么?
  7. surface pro 6 黑苹果_微软Surface新款超薄触控笔抢鲜评测
  8. java用链表做学生系统_C语言链表实现学生管理系统
  9. 理解 Android 的 ONE_SHOT_MAKEFILE
  10. 仿ios桌面vivo_原生万物,生态共赢丨永中移动Office为vivo文档提供定制版解决方案...
  11. 【实战】Docker容器资源管理
  12. 【SQLPlanet】如何将一维表转化为二维表
  13. matlab生成vcf,从VCF文件中提取样本数据
  14. react在线浏览doc_如何实现 React 中的状态自动保存?
  15. Delphi使用THTTPClient实现异步下载
  16. xubuntu language support
  17. 论文笔记:SRF(stereo radiance fileds)
  18. codevs2069 油画 — 动态维护优先队列
  19. Photoshop鸿蒙版,PS2021版太强悍,逆天新功能!
  20. Poj 2387 Til the Cows Come Home 迪杰斯特拉(普通+优化)

热门文章

  1. 将一个硬盘空间分配给另一个硬盘,怎么把一个磁盘的空间给另一个磁盘
  2. 在操场跑步,你是否试过逆向跑(顺时针方向)
  3. oracle各版本的区别,Oracle版本的区别有那些
  4. 【问题解决】插上耳机,仍然外放
  5. 计蒜客————乳草的侵占
  6. Android Studio中R文件丢失可能的产生原因 以及解决方案
  7. 游戏服务器开源框架(xinyue-game-frame)
  8. 详解Spire.PDF中的坐标体系及应用
  9. FFmpeg常用命令流媒体命令
  10. MATLAB差分进化算法求解超市物流配送选址问题实例