一、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日期格式大全 format SimpleDateFormat

    http://www.cnblogs.com/loveyakamoz/archive/2011/08/18/2145047.html

  2. 《HelloGitHub》第 24 期(两周年)

    公告 今天是<HelloGitHub>月刊 两周年.当时发布第一期的时候,根本没有想到可以走到现在. 这两年,HelloGitHub 项目有过辉煌的时刻:连续 3 天 GitHub 趋势首 ...

  3. LeetCode-101.对称二叉树

    链接:https://leetcode-cn.com/problems/symmetric-tree/description/ 给定一个二叉树,检查它是否是它自己的镜像(即,围绕它的中心对称). 例如 ...

  4. hibernate框架学习笔记4:主键生成策略、对象状态

    创建一个实体类: package domain; public class Customer { private Long cust_id; private String cust_name; pri ...

  5. 福州大学W班-alpha冲刺评分

    作业链接 https://edu.cnblogs.com/campus/fzu/FZUSoftwareEngineering1715W/homework/1159 作业要求 1.前期准备 阅读学习&l ...

  6. Beta冲刺集合

    1.Day1 http://www.cnblogs.com/bugLoser/p/8075868.html 2.Day2 http://www.cnblogs.com/bugLoser/p/80758 ...

  7. 201621123057 《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 答: (普通方法 / 构造函数)重载. static . final.继承与多态.extends.object类.abstrac ...

  8. NetFPGA-1G-CML Demo --- openflow_switch

    环境 ubuntu 14.04 vivado 15.2 ise 14.6 更多基础配置:http://www.cnblogs.com/wpqwpq/p/6771568.html 运行步骤 step1: ...

  9. tcltk控制chariot进行测试 couldn't load library "ChariotExt": invalid argument

    解决办法:和tcl版本有关,我的chariot应该是32位的,下载win32-ix86的tcl解决了,用64位的有这个错误提示. ActiveTcl8.6.4.1.299124-win32-ix86- ...

  10. 使用JavaScript实现一个俄罗斯方块

    清明假期期间,闲的无聊,就做了一个小游戏玩玩,目前游戏逻辑上暂未发现bug,只不过样子稍微丑了一些-.-项目地址:https://github.com/Jiasm/tetris在线Demo:http: ...