一、Maven的详解

What is Maven?

Maven是一个项目管理工具,它包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统,和用来运行定义在生命周期中插件目标的逻辑。Maven的核心功能合理叙述项目间的依赖关系。

如今,我们在构建一个Java的Web项目时,就要导入大量的jar包。一个项目的jar包数量就很多很多,而且每个jar包之间的关系就错综复杂,每一个jar包又不能缺少,一旦缺少一个jar包就会导致整个项目无法编译成功。因此,在开发项目的过程中,若是通过程序员手动的方式引入jar包,就会导致程序员在引入jar包这一块配置中就耗费大量的精力和时间,使得整个开发效率变低。

而Maven的出现大大方便了程序员构建项目,程序员只需要在Maven中的pom.xml配置文件中,告诉它要导入哪儿些jar包,Maven就会自动帮助我们下载并导入所有需要的jar包,大大提高了开发项目的效率。

Maven生命周期

  • Maven构建项目生命周期的描述是一次构建过程经历了多少个事件
  • Maven对项目创建的生命周期划分为3套
  1. -->clean:清理工作
  2. -->default:核心工作,例如编译,测试,打包,安装等
  3. -->site:产生报告,发布站点等

同一套生命周期内,执行后边的命令,前边的所有命令会自动执行。

Maven的目录结构

main文件夹:

java:存放项目的源代码

resources:存放项目资源文件

test文件夹:

java:存放单元测试源代码

resources:存放单元测试资源文件

target文件夹:存放打包产生后的文件

pom.xml:maven项目中的配置文件

Maven的常用命令

1、mvn -v

用于查看maven是否安装成功,并且可以查看maven的版本号信息。

2、mvn install

将项目安装到本地的仓库中,提供给别的项目使用。

3、mvn clean

发现在安装过程中出问题时,可以利用这个命令先清除干净,再进行重新安装。若项目已经经过打包处理,会清理掉target文件夹。

4、mvn compile

进行编译,将java源文件编译成class文件

5、mvn test

执行test目录下的测试案例

6、mvn package

将项目打包成一个jar包,方便使用,并且生成target目录。打包的过程中,就相当于将前面的编译测试都执行力一遍。

7、mvn run

启动服务

Maven仓库

Maven的仓库用来存放Maven管理的jar包,又分为本地仓库,中央仓库和远程仓库。

  • 本地仓库:存放Maven本地管理的一些jar包。
  • 中央仓库:由Maven团队维护的全球唯一的仓库,地址为:https://repo1.maven.org/maven2/
  • 远程仓库:又称私服。一般由公司团队搭建的私有仓库。

一般先将中央仓库中存放的jar包下载导入到本地仓库中,这样子可以在用到本地仓库中提供的jar包时,导入速度快,效率高。

当项目中使用坐标引入对应依赖jar包后,首先会查找本地仓库中是否有对应的jar包。如果有,则在项目中直接引用;如果没有,则去中央仓库下载对应的jar包到本地仓库。还可以搭建远程仓库。jar包的查找顺序为:本地仓库->远程仓库->中央仓库

Maven的坐标

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.32</version>
</dependency>​

每个jar包在Maven都有它独一无二的坐标,Maven仓库通过坐标找到对应的jar包。如上述代码,就是mysql的jar包对应的一个坐标。

  • groupId:jar包的项目名称
  • artifactId:jar包的模块名
  • version:jar包的版本号

Maven坐标的依赖范围

  • 通过设置坐标的依赖范围(scope),可以设置对应jar包的作用
  • 范围分为3个:编译环境、测试环境
  • <scope>test</scope>

  • <scope> 默认值:compile

二、Maven的配置与安装

1、安装本地的Maven

选择你需要的maven版本下载:Maven – Download Apache Maven

二、下载安装

 把下载好的Maven压缩包解压到一个不含中文,空格或者特殊字符的文件夹中。

三、配置环境变量

1.在系统变量中新建MAVEN_HOME,变量值为Maven安装的目录

2.编辑系统变量Path路径,添加%MAVEN_HOME%\bin

3.验证是否成功安装,win+R打开cmd,输入mvn -v命令,若出现详细信息,则maven安装成功。

四、配置settings文件

1.在Maven安装路径中找到conf目录下的settings.xml的配置文件

2.把配置文件中的本地仓库路径修改到D盘Maven目录下的mvn_resp(默认在C盘)

3.在Maven安装目录下新建本地仓库文件夹mvn_resp

4.配置私服。将中央仓库改为国内的服务器,提高下载jar包的速率(一般用阿里云的镜像库)

<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>

在配置文件中添加镜像文件

五、编译器的配置(此处以IDEA为例)

 修改maven安装的版本,setting配置文件的地址和本地仓库的地址

Maven的介绍与安装教程相关推荐

  1. IDEA介绍以及安装教程

    下面是一个比较详细介绍IDEA安装配置使用的教程 IntelliJ IDEA 的安装.配置与使用 尚硅谷 Java 研究院-宋红康 www.atguigu.com 一.IntelliJ IDEA 介绍 ...

  2. QGIS使用之基本介绍和安装教程

    今天,小崇想和大家介绍一下QGIS的基本知识.希望我们互相学习,共同进步! 何为QGIS? QGIS(Quantum GIS)是一款免费的桌面GIS软件,可运行在Linux.Unix.Mac OSX和 ...

  3. Web安全测试工具WVS介绍及安装教程

    Acunetix Web安全扫描神器功能 1.登录保护页面的自动扫描 一个网站最有可能被攻击和容易受到攻击的区域往往是那些需要用户登录的区域. 因此对的Acunetix最新版本现在可以自动地和轻松浏览 ...

  4. java 根据详细地址提取小区_Java分析/测试工具EJ Technologies JProfiler介绍及安装教程...

    JProfiler是一个功能强大的工具,可用于动态分析基于Java的应用程序,并使您能够分析它们,以优化性能.可以分析本地运行的JMV,应用程序服务器(本地或远程),Java Web Start应用程 ...

  5. windows无法检索有关这台计算机上的磁盘信息_磁盘镜像软件OO DiskImage Pro 15.5介绍及安装教程...

    Active @ Disk Image是一种磁盘映像软件,可以精确复制任何PC磁盘(HDD,SSD,USB,CD,DVD,Blu-ray等)并将其存储在文件夹中.磁盘映像可用于备份,PC升级或磁盘复制 ...

  6. 电脑显示未安装任何音频输出设备_音频频谱分析仪插件Voxengo SPAN Plus介绍及安装教程...

    SPAN Plus是用于专业声音和音乐制作应用程序的实时"快速傅立叶变换"音频频谱分析仪AAX,AudioUnit和VST插件.SPAN Plus是免费SPAN插件的扩展版本:SP ...

  7. Kali Linux介绍(安装教程)

    一.Kali Linux是什么? Kali Linux是基于Debian的Linux发行版, 设计用于数字取证操作系统.每一季度更新一次.由Offensive Security Ltd维护和资助.最先 ...

  8. R语言介绍及安装教程

    R语言是一种免费的开源编程语言和环境,主要用于数据分析.统计建模和可视化.它可以运行在不同的操作系统上,如Windows.MacOS和Linux.R语言具有以下特点: 丰富的数据处理和统计分析函数库: ...

  9. CAD中 OLE不能旋转_CAD设计软件ARES Commander 20.2.1.3032介绍及安装教程

    ARES Commander 20是一款功能强大的应用程序,设计人员可以通过它创建和编辑2D和3D DWG图纸.它通过智能工具和创新概念将先进的生产力提高到了一个可以将普通设计转变为专业设计的概念.用 ...

最新文章

  1. 安装JDK1.8+环境配置
  2. Xshell Linux常用命令及vim与权限修改等常见问题
  3. 数据从业者必读:抓取了一千亿个网页后我才明白,爬虫一点都不简单
  4. 数据分析学习01-matplotlib绘图工具基本操作
  5. 原生javascript实现完整的轮播图
  6. http-server 简介 复制的
  7. Linux内核分析 - 网络[十四]:IP选项
  8. Linux环境下Lapack软件包的编译和使用
  9. 拥有自己的Git服务器
  10. Spring框架帮助文档目录
  11. 3月9日 英语笔记-英标
  12. 内是不是半包围结构_什么是结构化面试、无领导小组讨论、结构化小组面试?教你快速搞懂国考面试三大形式。...
  13. oracle11g是什么语言,oracle11g下载
  14. 线性同余法随机数生成
  15. MacOS升级Big Sur后32位锐捷客户端排坑历程
  16. 2016书单总结--看透SpringMvc源代码分析与实践-概述
  17. python之父考虑重构python解释器_Python之父考虑重构Python解释器
  18. 世界顶级黑客,能入侵一台没有联网的电脑吗?
  19. php 输出gif 不动,PS制做的gif动画导出后动图不动了怎么办?
  20. 【SHELL】快乐linux命令行之基本命令

热门文章

  1. 【C语言内功心法】__weak -- 示弱也是一种强大
  2. KVM切换器和VGA切换器的区别
  3. js对大数据量的处理
  4. 基于jupyter notebook的python编程-----MNIST数据集的的定义及相关处理学习
  5. 百事正用AI种土豆,连削皮算法都搞上了
  6. js实现图片连续滚动播放
  7. Ubuntu server关机命令
  8. 做旅游的就要有驴子精神
  9. Linux操作系统渗透测试
  10. Ubuntu 16.04 一系列软件安装命令,包括QQ、搜狗、Chrome、vlc、网易云音乐安装方法(转载)...