一、Maven 简介

Maven 中文意为 “ 内行、专家 ”,是 Apache 下的一个开源项目,属于纯 Java 开发,并且只是用来管理 Java项目的,它是一款项目管理工具,使用 Maven 可以对 Java 项目进行构建和依赖管理,项目构建即项目的编码、编译、测试、运行、打包、部署等过程,依赖管理即对 项目所需要的 jar 包统一管理。

目前, Maven 也是一款非常热门好用的项目管理工具,并且使用 Maven 进行管理的项目也在持续增长。

二、为什么要使用 Maven

我们知道传统的项目开发需要将具体的 jar 包导入到过程当中,明显这会增加项目的大小,而 Maven 有一个远程的仓库可以专门用来存放 jar 包,包括各个版本的 jar 包,使用 Maven 进行项目的依赖管理,最大的特点就是可以明显缩小项目的大小。

举个例子,我们使用传统导入 jar 包的方式开发出来的项目本身大小为 50M,而我们使用 Maven 进行依赖管理开发出来的项目可能大小还不到 2M,因此使用 Maven 进行项目的管理,可以对 jar 包进行统一管理,节省空间。

再者,Maven 分模块开发,如对 web 层、service 层、dao 层进行分模块开发,并且可以对项目进行一键构建,明显这可以提高开发的效率。

三、Maven 的下载安装

相信下载与安装对于大家都是没有什么问题的,这里就简单说一下就行。

1、下载

Maven 各大版本下载地址:Maven官网下载地址

2、安装

直接将下载的文件解压,这里需要注意解压的文件夹名称不能含有空格键,否则后面使用可能会遇到问题。

解压完毕后在电脑进行 Maven 的使用环境进行配置了,打开环境变量的系统变量配置窗口,新建一个环境 MAVEN_HOME变量,变量值设置为 Maven 的解压目录即可。相信大家这里都可以自行完成配置,如果实在无法完成配置的,也可以到公众号后台联系我。

这里需要特别注意,使用 Maven 前电脑必须已经安装 jdk,并且不同的 Maven 版本对不同的 jdk 版本要求不一样,但 jdk1.7 以上基本没问题,具体就不再赘述。

最后就是验证 Maven 环境是否配置成功了,由于 Maven 最终要运行的是 Maven 安装目录中的 bin 目录的中的 mvn 命令,所以本地 win + R 直接打开 cmd 命令窗口,执行如下命令即可查看是否配置成功:

mvn -v

结果如下图所示:

四、Maven 仓库

前面我们讲到使用 Maven 进行项目管理可以节省空间主要是因为 Maven 对 jar 包进行了统一的管理,而这些 jar 包就是存放于仓库当中。

Maven 共有 3 中仓库,分别是:

  • 本地仓库:自己维护的仓库
  • 远程仓库:有一些公司来维护
  • 中央仓库:由 Maven 团队来维护

这 3 种仓库的关系如下图所示:

远程仓库和中央仓库我们是没有管理权限的,但是本地仓库我们是有权限进行相关设置的。本地仓库的配置只需要修改安装目录下的 conf 文件夹下的 settings.xml 文件就可以,自定义自己的本地仓库,如下图所示:

五、Maven 入门程序

1、打开 IDEA 新建 Maven 项目,点击 Next 进入下一步,如下图所示:

2、填写 GroupId 和 ArifactId, GroupId 是 Java 的包的结构,是 main 目录里 java 的目录结构,而 ArifactId 是项目的名称,就是项目根目录的名称,填写完直接点 Next,进入下一步,如下图所示:

3、填写存放此项目的工作区间,然后直接点 Finish 即可,如下图所示:

4、Maven 项目创建完成,创建完成后会直接打开 Maven 项目最重要的配置文件 pom.xml,这个后面会详细讲解,如下图所示:

5、手工创建 Maven 模板,选中项目,点击 File 下的 Project Structure,选择 Modules模块,点击 + 符号,然后添加 Web 模板,其他模板可以暂时不做改动,如图所示:

六、Maven 配置文件详解

打开项目的所有文件夹,这里只对 Maven 项目的主要文件进行相关的解释,如下图所示:

pom.xml : Maven 项目的核心文件,用来配置依赖的 jar 包

main :Maven 项目的主目录

java :存放项目的所有 Java 代码文件

resources :存放 properties 资源文件和 xml 配置文件

webapp :存放静态资源文件和页面文件

test :测试目录,存放 junit 测试文件

是的,到这里基本就可以进行 Java 项目开发了,具体如何开发,后期会持续更新,保持关注即可。

扫描二维码关注微信公众号,了解更多

------------------------------------------![](http://p5xem2laz.bkt.clouddn.com/about/wechat-qcode.jpg)

Maven 项目管理工具基础知识系列(一)的更多相关文章

  1. Maven 项目管理工具基础入门系列(二)

    一.前言 在 Maven 项目管理工具基础知识系列(一) 这篇文章中,我们已经初步了解了 Maven,也知道了使用 Maven 作为项目管理工具的好处,特别是已经知道如何快速通过 Maven 构建 W ...

  2. maven(项目管理工具系列 maven 总结二)

    ♣maven是什么? ♣maven下载.安装 ♣了解maven仓库 ♣eclipse配置maven ♣创建maven项目 ♣把maven项目转化为web项目 1.maven是什么? Maven是一个项 ...

  3. C# 基础知识系列- 16 开发工具篇

    0. 前言 这是C# 基础知识系列的最后一个内容讲解篇,下一篇是基础知识-实战篇.这一篇主要讲解一下C#程序的结构和主要编程工具. 1. 工具 工欲善其事必先利其器,在实际动手之前我们先来看看想要编写 ...

  4. C# 基础知识系列- 17 小工具优化

    0. 前言 不知道有没有动手能力强的小伙伴照着上一篇的内容写过程序呢?如果有的话,应该会在使用的时候发现以下几个问题: 每次启动都需要经过漫长的时间去遍历磁盘里的文件目录 因为数据是用的字典保存的,所 ...

  5. C# 基础知识系列- 12 任务和多线程

    0. 前言 照例一份前言,在介绍任务和多线程之前,先介绍一下异步和同步的概念.我们之间介绍的知识点都是在同步执行,所谓的同步就是一行代码一行代码的执行,就像是我们日常乘坐地铁通过安检通道一样,想象我们 ...

  6. C# 基础知识系列- 14 IO篇 文件的操作 (3)

    本篇继续前两篇内容,跟大家介绍一下Path类以及FileSystemInfo这个类的主要方法和属性. 上文提到,在<C# 基础知识系列-IO篇>之文件相关的内容完结之后,会带领大家开发一个 ...

  7. C# 基础知识系列- 14 IO篇 流的使用

    0. 前言 继续之前的C# IO流,在前几篇小短片中我们大概看了下C# 的基础IO也对文件.目录和路径的操作有了一定的了解.这一篇开始,给大家演示一下流的各种操作.以文件流为例,一起来看看如何操作吧. ...

  8. 基础知识系列☞C#中→属性和字段的区别

    "好吧...准备写个'基础知识系列',算是记录下吧,时时看看,更加加深记忆···" 其实本来准备叫"面试系列"... 字段.属性.你先知道的哪个概念? ***我 ...

  9. 基础知识系列☞Abstract和Virtual→及相关知识

    转载地址→http://www.cnblogs.com/blsong/archive/2010/08/12/1798064.html 在C#的学习中,容易混淆virtual方法和abstract方法的 ...

随机推荐

  1. Struts存取数据

    ValueStack举例分析: Action存 Jsp页面取,用于数据展示 存数据三种方式总结 存数据->map 或 root 展示数据->Strusts标签   这个玩意用着很舒服,能让 ...

  2. Beta冲刺NO.3

    Beta冲刺 第三天 1. 昨天的困难 1.昨天的困难主要集中在对Ajax的使用上,不熟悉这种语法,所以也就浪费了时间,导致昨天的批量删除没有完全完成. 2.由于之前的网页构造style很乱,导致修改 ...

  3. lambda及参数绑定

    一.介绍   对于STL中的算法,我们都可以传递任何类别的可调用对象.对于一个对象或一个表达式,如果可以对其使用调用运算符,则称它为可调用的.即,如果e是一个可调用的表达式,则我们可以编写代码e(ar ...

  4. PTA题目的處理(四)

    题目7-3 求交错序列前N项和 1.实验代码 #include <stdio.h> //#include <stdlib.h> int main() { ,N; double ...

  5. collections deque队列及其他队列

    from collections import deque dq = deque(range(10),maxlen=10) dq.rotate(3)#队列旋转操作接受一个参数N,让N>0时,队列 ...

  6. 使用HttpClient4.5实现HTTPS的双向认证

    说明:本文主要是在平时接口对接开发中遇到的为保证传输安全的情况特要求使用https进行交互的情况下,使用httpClient4.5版本对HTTPS的双向验证的  功能的实现    首先,老生常谈,文章 ...

  7. New UWP Community Toolkit - AdaptiveGridView

    概述 UWP Community Toolkit  中有一个自适应的 GridView 控件 - AdaptiveGridView,本篇我们结合代码详细讲解  AdaptiveGridView 的实现 ...

  8. 使用静态基类方案让 ASP.NET Core 实现遵循 HATEOAS Restful Web API

    Hypermedia As The Engine Of Application State (HATEOAS) HATEOAS(Hypermedia as the engine of applicat ...

  9. MySQL 避免重复数据的批量插入与批量更新

    [转发] 导读 我们在向数据库里批量插入数据的时候,会遇到要将原有主键或者unique索引所在记录更新的情况,而如果没有主键或者unique索引冲突的时候,直接执行插入操作. 这种情况下,有三种方式执 ...

  10. 解决IE8下CSS3选择器 :nth-child() 不兼容的问题

    1.定义和用法 :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型. n 可以是数字.关键词或公式. <ul> <li>1</li> ...