一、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. 常用排序算法的Java实现与分析

    由于需要分析算法的最好时间复杂度和最坏时间复杂度,因此这篇文章中写的排序都是从小到大的升序排序. 带排序的数组为arr,arr的长度为N.时间复杂度使用TC表示,额外空间复杂度使用SC表示. 好多代码 ...

  2. JavaWeb学习笔记五 会话技术Cookie&Session

    什么是会话技术? 例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态.会话 ...

  3. C语言博客作业—函数嵌套调用

    一.实验作业 1.1 PTA题目:递归法对任意10个数据按降序排序 1.1.1设计思路 void sort(int a[],int n) { 定义整型循环变量i,中间变量temp,最小值min: 令m ...

  4. iOS开发-OC数据类型

    以下是OC中的实例,Swift部分不适用 iOS中的注释 // 单行注释 // 注释对代码起到解释说明的作用,注释是给程序员看的,不参与程序运行 /*  多行注释   Xcode快捷键   全选 cm ...

  5. ruby:TypeError: 对象不支持此属性或方法

    解决办法. 1.下载对应版本 下载node.js,根据ruby版本决定下载32还是x64,我的ruby版本x64 https://npm.taobao.org/mirrors/node/v8.9.3/ ...

  6. Android接受验证码自动填入功能(源码+已实现+可用+版本兼容)

    实际应用开发中,会经常用到短信验证的功能,这个时候如果再让用户就查看短信.然后再回到界面进行短信的填写,难免有多少有些不方便,作为开发者.本着用户至上的原则我们也应该来实现验证码的自动填写功能,还有一 ...

  7. img加载卡顿,解决办法

    我觉得我在这个项目里遇到了太多的第一次.比如上一篇博文:在在360.UC等浏览器,img不加载原因. 当前情况是:图片加载缓慢,图片加载时出现卡顿. 上图:我缩放了图片,估计有点变形.能说明情况就行, ...

  8. 织梦cms网上复制图片不可用的解决方法

    背景描述: 织梦cms采集图片集时, 需要使用织梦cms提供的"网上复制图片"的功能, 好像我这里这个功能一直不可用, 今天下定决心研究了下源代码并进行了适当修改, 将我的修改提供 ...

  9. JAVA_SE基础——28.封装

    黑马程序员blog... 面向对象三大特征:1. 封装2. 继承3  多态. 今天我们先学习第一大特征,封装. 封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式. 好处:     1. 将变 ...

  10. linux查看文件内容的常见命令

    1.cat命令,显示文件的所有内容,内容过多则显示最后一屏一般用于内容较少文件 2.more命令,分页显示文件的内容一般用于文件内容过多的文件,回车显示下一行,空格显示下一页,q/Q退出 3.head ...