1. Maven是啥

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

2. Maven能解决什么样的问题

  (1) 解决 jar 包冲突

  (2) 编译代码

  (3) 便捷进行单元测试

  (4) 打包项目、生成报表

  (5) 部署项目、生成站点

3. 依赖管理

  笼统说,依赖管理就是Maven工程对 jar 包的管理过程

  区别:

    传统Web工程:jar 包存放在项目中,大大占用磁盘空间

    Maven的Web工程:jar 包不放在项目中,而是通过”坐标“在统一的 jar 包仓库中搜索使用,代码重用的开发理念

    (因为 jar 包仓库是很大的,一个两个项目体现不出Maven的优势,只有遇到大量项目时才会体现出体积优势)

4. 一键构建项目

  构建的步骤:编译、测试、运行、打包、安装、部署

  通过将所有的步骤统一交给Maven,做到了项目的一键构建

  Maven规范化构建流程

    清理、编译、测试、报告、打包、部署

5. Maven仓库

  因为Maven项目中没有存放 jar 包,里面只用 jar 包的坐标。要用的 jar 包的时候,就得根据坐标去Maven的仓库中寻找相应的 jar 包。

  Maven仓库分为

    本地仓库:安装Maven的时候,Maven会自动在C盘的 /User/当前用户/.m2/repository 目录布置本地仓库,可以手动设置本地仓库路径。

    中央仓库:apache提供的几乎所有的开源 jar 包仓库。

    远程仓库:企业提供不联网情况下也可以下载 jar 包的仓库,仓库安置在企业私有数据库。

  关系:

    本地仓库:提供项目使用的 jar 包,可以从远程仓库和中央仓库获取 jar 包,也可以将个人的 jar 包上传到远程仓库。

    中央仓库:为本地仓库和远程仓库提供几乎所有开源 jar 包。

    远程仓库:为本地仓库提供 jar 包,也可以从本地仓库(需要本地仓库手动上传)和中央仓库获取 jar 包。

6. Maven项目结构

  Maven将代码分为两个大的部分,分为核心部分和测试部分,将核心和测试分隔开,便于开发和测试

    src/main/java:核心代码

    src/main/resources:配置文件

    src/test/java:测试代码

    src/test/resources:测试配置文件

    src/main/webapp:web开发的目录,存放页面的资源

7. Maven的常用命令

  mvn clean:清理项目生成的编译文件,删除 target 文件夹

  mvn compile:编译 src/main 目录下的代码,生成 target 文件夹,存放着编译后的项目文件

  mvn test:编译 src/main 和 src/test 目录下的代码

  mvn package:编译 src/main 和 src/test 目录下的代码,并将项目打包

    (可以在项目 pom.xml 文件的 <packaging> 标签中设置打包的文件格式)

  mvn install:编译 src/main 和 src/test 目录下的代码,并将项目打包,将包安装到了本地仓库

  mvn tomcat:run:将项目编译后生成的包加载到 Maven 自带的 Tomcat 中

8. Maven的生命周期

  Maven项目的五个重要步骤:清理、编译、测试、打包、安装、发布

  “清理”作为清理生命周期独立于后五项组成的默认生命周期存在

  默认生命周期:要想完成测试就一定要经过编译;要想完成打包就一定要先经过编译、测试两个环节,剩下的步骤同理

9. Maven的概念模型

  

  Maven的两大特性:依赖管理、一键构建

  (1) 依赖管理

    依赖管理分为 项目对象模型 和 依赖管理模型

    项目对象模型:核心的就是项目中的 pom.xml 文件,文件里记录着 项目自身信息、使用的 jar 包信息、项目运行环境信息

    依赖管理模型:由 jar 包的坐标和 仓库 组成,坐标由 jar 包的项目名称、模块名称、版本和依赖范围(防止 jar 包冲突)

  (2) 一键构建

    依赖于Maven的生命周期特性,每一个步骤都依托于Maven底层的一个插件来完成,最后完成一键构建的功能

Maven的概述和基础(学习整理)的更多相关文章

  1. Linux基础学习整理

    linux学习记录 下载地址 centos 下载地址: 网易镜像:http://mirrors.163.com/centos/6/isos/ 搜狐镜像:http://mirrors.sohu.com/ ...

  2. javascript 基础学习整理 二 之 html对象总结,参考W3C

    Anchor 对象 更改一个链接的文本.URL 以及 target 使用 focus() 和 blur() 向超链接添加快捷键 Document 对象 使用 document.write() 向输出流 ...

  3. javascript 基础学习整理

    1. javascript是动态语言,脚本语言,弱类型语言. 2. javascript代码在html文件中的位置安排,放在<body></body>内部与外部的区别.如何引用 ...

  4. MVC零基础学习整理(一)

    1.Mvc程序的启动页的设置:修改程序的Global.asax文件

  5. 【shell脚本】 变量基础学习整理

    1.linux系统环境 echo 'echo /etc/profile ' >> /etc/profile echo 'echo /etc/bashrc' >> /etc/ba ...

  6. 慕课网Python基础学习整理

    # -*- coding: utf-8 -*- """# Python的注释以 # 开头,后面的文字直到行尾都算注释;多行注释开头3个 " 结尾3个 " ...

  7. maven学习整理-进阶知识

    在maven的阶知识主要学习的是maven在eclipse中的使用.依赖相关的问题.继承(父子工程).统一版本管理.聚合等相关知识 1.maven在eclipse中的使用 由上篇基础知识学习到怎样下载 ...

  8. maven基础学习-为什么要用maven,帮助解决了什么问题,怎么解决的,希望以后学习每个知识点都可以这样问下自己

    maven基础学习 第1章 Maven介绍 1.1 什么是Maven 1.1.1 什么是Maven Maven 的正确发音是[ˈmevən],而不是"马瘟"以及其他什么瘟.Mave ...

  9. Maven基础学习笔记

    Maven基础学习笔记 下载链接 官网:https://maven.apache.org/ 所有版本:https://archive.apache.org/dist/maven/maven-3/ 阿里 ...

随机推荐

  1. 【web】Chrome 浏览器中查看 webSocket 连接信息

    1.以下代码实现一个webSocket连接,在文本输入框中输入内容,点击发送,通过服务器,返回相同的内容显示在下方. 1 <!DOCTYPE html> 2 <html lang=& ...

  2. 字符串slice、substring、substr

    1.slice() 可以为负数,如果起始位置为负数,则从字符串最后一位向前找对应位数并且向后取结束位置,如果为正整数则从前往后取起始位置到结束位置. 2.substring() 只能非负整数,截取起始 ...

  3. buffers和cached

    buffers和cached是为了提高数据访问性能,减少对磁盘的I/O操作 buffers 用来给块设备做的缓冲大小 例如,目录内容,权限 cached 用来给文件做缓冲 例如,打开的文件 测试 先后 ...

  4. pkg-config命令

    返回已安装库文件的元信息 pkg-config读取.pc文件获取信息 基本思想 编译的时候-I指定头文件路径:-L指定库文件路径.这样做总感觉很麻烦 事先把库的位置信息等保存起来,需要的时候再通过特定 ...

  5. git基本命令总结

    介绍 上一篇博客介绍了git的基本使用方式,建议可以去阅读一下廖雪峰关于git的文章写的十分详细,并且通俗易懂,这篇博客主要是总结上一篇博客中用到的git命令,方便使用查询. git常用命令小结 gi ...

  6. Mysql高可用集群-解决MMM单点故障

    目录 一.理论概述 组件介绍 三.部署 四.测试 五.总结 preface: MMM架构相比于MHA来说各方面都逊色不少,写这篇案例也算是整理下思路吧. 一.理论概述 MMM(Master-Maste ...

  7. 爬虫如何发现更多的url呢,怎么动态收集新的url连接

    大家在做爬虫采集数据的时候很多都会遇到增量采集的问题,有些时候是通过过滤url来进行的,有些是通过爬取网页后再进行分析判断, 以上这些过程也许大部分做爬虫的都会这么做,各位有没有想过, 除了以上的常用 ...

  8. 《数据结构与算法之美》 <06>栈:如何实现浏览器的前进和后退功能?

    浏览器的前进.后退功能,我想你肯定很熟悉吧? 当你依次访问完一串页面 a-b-c 之后,点击浏览器的后退按钮,就可以查看之前浏览过的页面 b 和 a.当你后退到页面 a,点击前进按钮,就可以重新查看页 ...

  9. 《数据结构与算法之美》 <03>数组:为什么很多编程语言中数组都从0开始编号?

    提到数组,我想你肯定不陌生,甚至还会自信地说,它很简单啊. 是的,在每一种编程语言中,基本都会有数组这种数据类型.不过,它不仅仅是一种编程语言中的数据类型,还是一种最基础的数据结构.尽管数组看起来非常 ...

  10. KVM虚拟机高级设置——10 快照、克隆、替换磁盘

    查看虚拟机磁盘文件 [root@CentOS2 ~]# cd /var/lib/libvirt/images/ [root@CentOS2 images]# ll -h total 13G -rw-r ...