Maven是什么?

  百度百科:Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

  这些描述总是让人更加难理解Maven,扔掉它,咱们先看看Maven能干嘛

Maven能干什么?

  1帮你下载jar包 

  maven项目会有一个 pom.xml文件, 在这个文件里面,只要你添加相应配置,他就会自动帮你下载相应jar包,不用你到处搜索你需要的jar包了 。maven都会通过:项目名-项目模块-项目版本来maven在互联网上的代码库中下载相应jar包。

  寻找jar的地址:  http://search.maven.org

  这就是maven的功能之一,帮你下载jar包

  2 . 寻找依赖,帮你下载依赖 

  寻找jar包是第一基本功能,寻找依赖在这个是在这个基础上的功能。

  在maven的代码库中,每一个jar包也有自己的 pom.xml文件,而这个文件里面也会有<dependency>配置,什么依赖范围我就不细说了,我想表达的就是,只要你配置的jar包所依赖的其他jar包都会被maven自动下载下来。

  eg:你配置了

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.6</version>
</dependency>

  你需要maven帮你下载spring-core-3.6.jar包 ,而这个jar包里面需要用到commons-logging.jar这个包, 这叫就依赖,spring-core-3.6.jar依赖于commons-logging.jar。 这就是maven第二个作用,帮你下载依赖包。

  3 . 热部署,热编译

  意思就是,在你web项目已经运行的时候,修改代码的能直接被web服务器所接受,就不需要你 重启服务器了,或者重新部署代码了,而且你可以直接通过maven 打包war或者jar项目。

下载与安装

在Maven的官方网站即可下载:http://maven.apache.org/download.cgi

Windows系统的话我们下载已编译的二进制压缩包文件即可:

  

下载好之后我们解压后可以看到如下目录:

  

接下来就是安装Maven了,与安装JDK类似,首先需要新建一个Maven的环境变量:

  

接下来把Maven的bin目录加入到Path环境变量中,这样我们就可以通过命令行直接运行Maven命令了:

  

最后通过命令mvn -v 或mvn -version即可查看到Maven是否安装成功,安装成功即可看到相关版本信息:

  

这里还需要强调一点就是安装Maven之前务必确保正确安装了JDK,我们这里安装的maven-3.3.3必须要装JDK1.7+,否则Maven无法正常使用,关于这一点我们在官网的Documentation的Download目录下可以看到:

所以需要注意一下JDK的版本,如果你以后使用IDE去创建Maven项目的话也务必要配置好正确版本的JDK。

到此环境搭建算是完成了,简要介绍了Maven的下载与安装,下面介绍Maven的约定目录结构,一些基本命令以及如何去创建一个Maven项目。

Maven的约定目录结构

使用Maven管理项目的话,那么项目的结构目录务必要按照Maven约定的目录结构来创建项目,我们在官方文档中可以看到Maven提供的目录结构图:

简单介绍一下每个目录下应当存放的文件类型,在官网中可以看到标准的Introduction to the Standard Directory Layout,如下图所示:

显而易见,每个目录下应当放什么样类型的文件都说的很清楚了,一般情况下常用的是以下4个目录:

src/main/java:

存放项目的java类源文件,即:Xxx.java

src/main/resources:

存放项目的资源文件,如spring、mybatis的配置文件等等

src/test/java:  

存放项目的用于测试的java类源文件,即:XxxTest.java

src/test/resources: 

存放项目的测试相关的资源文件

在上面的上面的图中我们还看到了一个pom.xml配置文件,这个文件很重要,它是Maven的核心配置文件,我们的项目版本,jar包依赖等等都以标签的形式保存在了这个配置文件中,在官方文档中也可以具体查看关于这个文件的介绍:

我在上图中标记出来的4个元素是必须配置的4个基础元素,至于为什么,我们可以在Introduction to the POM中看一下pom.xml的Minimal POM:

显而易见,已经说的很清楚了,the minimum requirement for a POM的配置,缺一不可。如果懒得看那一大段英文的原版解释,那么我下面就简要的解释一下这4个元素的含义。

modelVersion:

  描述这个pom.xml文件是遵从哪个版本的项目描述符,maven3应当设置成4.0.0

groupId:

  指明了创建项目的组织的唯一标识符,一般就是包名了

artifactId:

  指的是项目中的主要的模块名(primary artifact),默认命名方式是“项目名-模块名”

version:

  指的是项目模块的版本,通常使用的是Maven的快照版本(例如:0.0.1-SNAPSHOT)

Maven的三个基本命令和IDEA中创建maven项目请听下回分解。

最新文章

  1. iOS开发UI篇—核心动画简介
  2. 从分布式一致性谈到CAP理论、BASE理论
  3. 7. javacript高级程序设计- 函数表达式
  4. Tkprof工具详解一
  5. Iptables防火墙
  6. wikioi1012 最大公约数和最小公倍数问题(2001年NOIP全国联赛普及组)
  7. AS3 编码解码函数 特殊字符转义
  8. servlet 启动加载配置文件及初始化
  9. jquery自定义方法
  10. 用Swashbuckle给ASP.NET Core的项目自动生成Swagger的API帮助文档
  11. UIKit各类概述
  12. Delphi 7下使用Log4Delphi 0.8日志组件
  13. 解决办法:CMake编译时出现“error in configuration process project files may be invalid”
  14. C#利用微软企业库Enterprise Library配置mysql数据库
  15. python已安装了一个包,但是导入包中的模块时报错没有这个包
  16. Oracle 与 Mysql NULL值,空字符串&#39;&#39;的区别
  17. IT题库5-并发和并行
  18. 详细说明进程管理工具htop、vmstat等相关命令
  19. hdu 1874 畅通工程 【spfa and dijkstra实现】
  20. TLS/SSL简单过程

热门文章

  1. 一些奇怪的JavaScript试题
  2. BZOJ 2457 双端队列(思维
  3. eclipse关闭错误警告提示
  4. PHP设计模式-代理模式
  5. TypeScript+Vue初体验Demo
  6. jquery学习之add()
  7. MyBatis的SQL语句映射文件详解(二)----增删改查
  8. nginx重要配置项简要说明
  9. 51nod 1040 最大公约数之和
  10. stdafx.h、stdafx.cpp的作用