参考链接:Maven基础篇(IDEA版)

一、Maven概述

Maven是一个项目管理工具,他包含了一个项目对象模型(POM),一组标准组合,一个项目生命周期,一个依赖管理系统,和用来运行定义在生命周期中插件目标的逻辑

Maven能解决什么问题?

  • 项目需要大量的jar包导入时,每次都要手动引入,很麻烦
  • 单元测试很多时,需要一次性执行一个目录下的所有测试
  • 打包项目时需要手动打包

如果有了maven,以上问题都可以很方便地解决。另外,如果有了maven,项目大小会大大减少,一个几十兆的项目经过maven管理后可以变得只有几十到几百KB。

二、maven依赖管理

简而言之:maven对jar包的管理过程

  1. maven将jar包单独放在一个仓库中,减少了重复打包jar文件,减小了项目大小。
  2. maven项目jar包坐标即项目中的pom.xml

三、maven文件结构

从官网上下载maven

解压到一个目录下,文件目录如下:

  • bin目录(mvn.cmd用来构建项目):

  • boot是maven自身运行的类加载器
  • conf目录(settings.xml是maven配置的文件):

  • lib(maven依赖的jar包)

四、maven仓库的种类以及彼此联系

maven仓库引用的jar仓库在哪呢?maven下的conf文件夹中打开settings.xml,有这样一句代码:

Default: ${user.home}/.m2/repository
<localRepository>/path/to/local/repo</localRepository>

表示在用户的home文件夹下创建.m2/repository文件夹作为本地仓库,用于存放jar包。

下面localRepository解除注释后可以作为自定义的本地仓库。



maven共有三种仓库:本地仓库远程仓库[私服]中央仓库

五、maven标准目录结构

目录 功能
src/main/java 核心代码部分
src/main/resources 配置文件部分
src/test/java 测试代码部分
src/test/resources 测试配置文件
src/main/java 核心代码部分
src/main/webapp 页面资源js,css,图片

六、mvn命令

目录的target目录保存编译后的文件

命令 功能
mvn clean 清除target目录(编译的文件)
mvn complie 编译src\main\java,生成target目录
mvn test 执行第2命令,编译测试项目和项目,在target目录下多生成test-classes目录
mvn package 执行第2-3条命令,并打包项目,打成war还是jar要看pom.xml的packgeing标签
mvn install 执行第2-第4条命令,并且在把项目jar包安装在本地仓库
mvn deploy 执行第2-第5条命令,发布项目

七、maven生命周期

  1. 清理生命周期:执行mvn clean的过程
  2. 默认生命周期:简单点说就是compiler->test->package->install->deploy
  3. 站点生命周期:不做讲述

八、maven的概念模型

1. pom.xml:

标签 信息
dependencies标签之前的信息 项目自身信息
dependencies标签内 运行时所依赖的jar包信息
build标签内 项目运行环境信息,比如jdk,tomcat

2. 依赖管理模型:

放置的都是jar包坐标:

标签 信息
groupId 公司组织的名称
artifactId 项目名
version 版本号
scope 作用域,常用于解决jar包冲突问题
        <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

3.plug.in:

在maven的默认生命周期里,调用的构建命令都由maven的plug in插件去实现,达到一键构建的效果。

Maven原理学习的更多相关文章

  1. Maven的学习资料收集--(九) 构建SSH项目以及专栏maven

    在这里整合一下,使用Maven构建一个SSH项目 1.新建一个Web项目 可以参照前面的博客 2.添加依赖,修改pom.xml <project xmlns="http://maven ...

  2. Maven之 学习资料

    整理maven的学习资料,长期更新. 一.视频 1.孔浩老师的  maven视频教程 二.博客 1.黄勇:     maven那些事儿 使用 OSC Maven 仓库 三.书籍 1.<Maven ...

  3. IIS原理学习

    IIS 原理学习 首先声明以下内容是我在网上搜索后整理的,在此只是进行记录,以备往后查阅只用. IIS 5.x介绍 IIS 5.x一个显著的特征就是Web Server和真正的ASP.NET Appl ...

  4. zookkeper原理学习

    zookkeper原理学习  https://segmentfault.com/a/1190000014479433   https://www.cnblogs.com/felixzh/p/58692 ...

  5. GIS原理学习目录

    GIS原理学习目录 内容提要 本网络教程是教育部“新世纪网络课程建设工程”的实施课程.系统扼要地阐述地理信息系统的技术体系,重点突出地理信息系统的基本技术及方法. 本网络教程共分八章:第一章绪论,重点 ...

  6. 转:SVM与SVR支持向量机原理学习与思考(一)

    SVM与SVR支持向量机原理学习与思考(一) 转:http://tonysh-thu.blogspot.com/2009/07/svmsvr.html 弱弱的看了看老掉牙的支持向量机(Support ...

  7. Android自复制传播APP原理学习(翻译)

     Android自复制传播APP原理学习(翻译) 1 背景介绍 论文链接:http://arxiv.org/abs/1511.00444 项目地址:https://github.com/Tribler ...

  8. 计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理

    前言 对于我们80后来说,最早接触计算机应该是在95年左右,那个时候最流行的一个词语是多媒体. 依旧记得当时在同学家看同学输入几个DOS命令就成功的打开了一个游戏,当时实在是佩服的五体投地.因为对我来 ...

  9. Dubbo原理学习

    Dubbo源码及原理学习 阿里中间件团队博客 Dubbo官网 Dubbo源码解析 Dubbo源码解析-掘金 Dubbo源码解析-赵计刚 Dubbo系列 源码总结+最近感悟

随机推荐

  1. 北京开发票/v电13543443967

    关于事项:Iㄋ5一★4З44一★ㄋ9.б7开发票的准备资料必须要公司名称个人的话就用个人名字和身份证去税务柜台申请办理!公司的话要提供公司全称就是营业执照上的名称,纳税人税号,如果是开普通增值税发票的 ...

  2. skywalking中表字段的信息

    https://skyapm.github.io/document-cn-translation-of-skywalking/zh/6.2.0/concepts-and-designs/scope-d ...

  3. 宝贝,来,满足你,二哥告诉你学 Java 应该买什么书?

    (这次的标题是不是有点皮,对模仿好朋友 guide 哥的,我也要皮一皮) 高尔基说过,对吧?宝贝们,"书籍是人类进步的阶梯",不管学什么,买几本心仪的书读一读,帮助还是非常大的.尽 ...

  4. mfc 中unicode 字符和字符串的使用

    在MFC或SDK程序中,不需要进行任何关于unicode的设置,记住下面两个宏,保你程序一路畅通: 用TCHAR/TCHAR*代替char/char* 及wchar/wchar*用TEXT(" ...

  5. object detection api调参详解(兼SSD算法参数详解)

    一.引言 使用谷歌提供的object detection api图像识别框架,我们可以很方便地重新训练一个预训练模型,用于自己的具体业务.以我所使用的ssd_mobilenet_v1预训练模型为例,训 ...

  6. 学习 Spring Boot 知识看这一篇就够了

    从2016年因为工作原因开始研究 Spring Boot ,先后写了很多关于 Spring Boot 的文章,发表在技术社区.我的博客和我的公号内.粗略的统计了一下总共的文章加起来大概有六十多篇了,其 ...

  7. 状压DP之集合选数

    题目 [HNOI2012]集合选数 <集合论与图论>这门课程有一道作业题,要求同学们求出{1, 2, 3, 4, 5}的所有满足以 下条件的子集:若 x 在该子集中,则 2x 和 3x 不 ...

  8. P4408 逃学的小孩 题解

    题目描述 Chris家的电话铃响起了,里面传出了Chris的老师焦急的声音:"喂,是Chris的家长吗?你们的孩子又没来上课,不想参加考试了吗?"一听说要考试,Chris的父母就心 ...

  9. python学习笔记之数据类型(二)

    上一篇博客,小波介绍了python的入门和简单流程控制,这次写python的数据类型和各种数据类型的内置方法. 一.数据类型是何方神圣? 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当 ...

  10. day32 异常处理、网络编程

    目录 一.异常处理 1 什么是异常 2 为什么要处理异常 3 如何处理异常 3.1 语法错误 3.2 逻辑错误 3.3 两种处理逻辑异常的方式 3.3.1 可预知型错误 3.3.2 不可预知型错误 4 ...