1.maven的基本概念

Maven的正确发音是[ˈmevən](妹瘟),而不是“马瘟”以及其他什么瘟。Maven在美国是一个口语化的词语,代表专家、内行的意思。

一个对Maven比较正式的定义是这么说的:Maven是一个项目管理工具,它包含了一个项目对象模型 (POM:Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

2.Maven能解决什么问题

1、我们需要引用各种jar包,尤其是比较大的工程,引用的jar包往往有几十个乃至上百个, 每用到一种jar包,都需要手动引入工程目录,而且经常遇到各种让人抓狂的jar包冲突,版本冲突。

2、世界上没有不存在bug的代码,计算机喜欢bug就和人们总是喜欢美女帅哥一样。为了追求美为了减少bug,因此写完了代码,我们还要写一些单元测试,然后一个个的运行来检验代码质量。

3、再优雅的代码也是要出来卖的。我们后面还需要把代码与各种配置文件、资源整合到一起,定型打包,如果是web项目,还需要将之发布到服务器,供人蹂躏。
试想,如果现在有一种工具,可以把你从上面的繁琐工作中解放出来,能帮你构建工程,管理jar包,编译代码,还能帮你自动运行单元测试,打包,生成报表,甚至能帮你部署项目,生成Web站点,你会心动吗?Maven就可以解决上面所提到的这些问题。

2.Maven的两个精典作用

Maven的依赖管理

maven工程中不直接将jar包导入到工程中,而是通过在pom.xml文件中添加所需jar包的坐标,这样就很好的避免了jar直接引入进来,在需要用到jar包的时候,只要查找pom.xml文件,再通过pom.xml文件中的坐标,到一个专门用于”存放jar包的仓库”(maven仓库)中根据坐标从而找到这些jar包,再把这些jar包拿去运行。

项目的一键构建

我们的项目,往往都要经历编译、测试、运行、打包、安装 ,部署等一系列过程。
什么是构建?
指的是项目从编译、测试、运行、打包、安装 ,部署整个过程都交给maven进行管理,这个过程称为构建。

一键构建
指的是整个构建过程,使用maven一个命令可以轻松完成整个工作。

3.Maven的安装

1.Maven软件的下载

下载地址http://maven.apache.org/download.cgi

下载后的版本如下:

2.Maven下载后,将Maven解压到一个没有中文没有空格的路径下,比如D:\software\maven下面。
解压后目录结构如下:

bin:存放了maven的命令,比如我们前面用到的mvn tomcat:run
boot:存放了一些maven本身的引导程序,如类加载器等
conf:存放了maven的一些配置文件,如setting.xml文件
lib:存放了maven本身运行所需的一些jar包
至此我们的maven软件就可以使用了,前提是你的电脑上之前已经安装并配置好了JDK。

3.JDK的准备及统一,JDK使用JDK8版本

4.电脑上需安装java环境,安装JDK1.7 + 版本 (将JAVA_HOME/bin 配置环境变量path ),我们使用的是JDK8相关版本

配置 MAVEN_HOME ,变量值就是你的maven安装 的路径(bin目录之前一级目录)

5.上面配置了我们的Maven软件,注意这个目录就是之前你解压maven的压缩文件包在的的目录,最好不要有中文和空格。
再次检查JDK的安装目录
,如下图:

6.Maven软件版本测试
通过 mvn -v命令检查 maven是否安装成功,看到maven的版本为3.5.2及java版本为1.8即为安装成功。
找开cmd命令,输入mvn –v命令,如下图:


我们发现maven的版本,及jdk的版本符合要求,这样我们的maven软件安装就成功了。

Maven仓库的分类
maven的工作需要从仓库下载一些jar包,如下图所示,本地的项目A、项目B等都会通过maven软件从远程仓库(可以理解为互联网上的仓库)下载jar包并存在本地仓库,本地仓库 就是本地文件夹,当第二次需要此jar包时则不再从远程仓库下载,因为本地仓库已经存在了,可以将本地仓库理解为缓存,有了本地仓库就不用每次从远程仓库下载了。

 1.本地仓库 :用来存储从远程仓库或中央仓库下载的插件和jar包,项目使用一些插件或jar包,优先从本地仓库查找
默认本地仓库位置在 ${user.dir}/.m2/repository,${user.dir}表示windows用户目录。

2. 远程仓库:如果本地需要插件或者jar包,本地仓库没有,默认去远程仓库下载。远程仓库可以在互联网内也可以在局域网内。

    3.中央仓库 :在maven软件中内置一个远程仓库地址http://repo1.maven.org/maven2 ,它是中央仓库,服务于整个互联网,它是由Maven团队自己维护,里面存储了非常全的jar包,它包含了世界上大部分流行的开源项目构件。

java结丹期(15)----javaweb(maven(1))相关推荐

  1. java结丹期(16)----javaweb(maven(2))

    idea开发maven项目(电脑上一定要安装maven,并配置好环境变量才可开始下面的操作) 1.idea的maven配置 打开File→Settings配置maven 依据图片指示,选择本地mave ...

  2. java结丹期(14)----javaweb(cookiesession)

     Cookie: 1. 概念:客户端会话技术,将数据保存到客户端 2. 快速入门: * 使用步骤:     1. 创建Cookie对象,绑定数据         * new Cookie(String ...

  3. java结丹期(13)----javaweb(responserequestservletcontext)

    Request     1. request对象和response对象的原理         1. request和response对象是由服务器创建的.我们来使用它们         2. requ ...

  4. java结丹期(12)----javaweb(servletHTTPweb相关基本概念)

    web相关概念回顾 1. 软件架构     1. C/S:客户端/服务器端     2. B/S:浏览器/服务器端 2. 资源分类     1. 静态资源:所有用户访问后,得到的结果都是一样的,称为静 ...

  5. java结丹期(11)----javaweb(jstljsp)

    JSP(JavaServer Pages): 1. 概念:     * Java Server Pages: java服务器端页面         * 可以理解为:一个特殊的页面,其中既可以指定定义h ...

  6. 接口测试(筑基期>>>结丹期)

    • 初识HTTP • HTTP的工作原理 • 请求行.状态行和消息报头 • 缓存和认证 • Fiddler的基本介绍 HTTP 的原理 HTTP 1.0 1.连接过程是短暂的 2.每次连接只处理一个请 ...

  7. 图文具体解释 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)

    图文具体解释 IntelliJ IDEA 15 创建 maven 的 Web 项目 搭建 maven 项目结构 1.使用 IntelliJ IDEA 15 新建一个项目. 2.设置 GAV 坐标 3. ...

  8. 图文详解 IntelliJ IDEA 15 创建 Maven 构建的 Java Web 项目(使用 Jetty 容器)

    图文详解 IntelliJ IDEA 15 创建 maven 的 Web 项目 搭建 maven 项目结构 1.使用 IntelliJ IDEA 15 新建一个项目.    2.设置 GAV 坐标  ...

  9. 黑马程序员,黑马论坛----Java+云计算2期,就业率96.15%,平均薪水6820元!

    来源:黑马程序员,黑马论坛 Java+云计算2期,就业率96.15%,平均薪水6820元! 班级名称:JavaEE+云计算2期 毕业时间:2013年7月9日 总人数:52    班主任:张道平 就业指 ...

最新文章

  1. 城市生态的机器人革命
  2. 学习这门课的一些问题
  3. python flask flash消息闪现
  4. DM8168 DVRRDK软件框架研究
  5. 从 Demo 中学习 Solidity
  6. Java Spring MVC框架搭建(一)
  7. 过滤被7整除或者包含7的数子
  8. WTM 3.5发布,VUE来了!
  9. axios 参数为payload的解决方法
  10. asp.net单一登录
  11. Linux删除安卓温控,RK平台关闭温度控制降频功能
  12. Python适合初学者入门
  13. python3使用print打印带颜色的字符串
  14. [转]pip – pip安装和使用教程
  15. 求解鸡兔同笼问题C语言
  16. The Code is successfully generatd...使用stm32cude生成工程时报错
  17. 使用JavaScript生成二维码和识别二维码
  18. nginx服务器配置
  19. 小程序防抖功能以及wx:for的使用
  20. 日志:每个软件工程师应该知道的实时数据的统一抽象概念

热门文章

  1. SpringMVC 中静态资源的处理
  2. matlab bs2rv.m,Matlab智能算法之遗传算法(一)
  3. 这个省到2025年,PUE>1.3存量大型数据中心将全部腾退关停!
  4. 关于对2020年数据中心的发展的8个预测
  5. 腾讯天津数据中心余热回收应用初探
  6. 关于数据中心的选址大全
  7. 百度地图 key_Android百度地图导航的接入(包含驾车、公交、步行)
  8. java 对外提供接口_Java服务器对外提供接口以及Android端向服务器请求数据
  9. 成功解决ModuleNotFoundError: No module named 'torchvision.ops'
  10. Gradient Tree Boosting:梯度提升树详解