maven概述、maven依赖管理的概念、maven一键构建概念

maven概述

Maven在美国是一个口语化的词语,代表专家,内行的意思

  一个对Maven比较正式的定义是这么说的,Maven是一个项目管理工具,它包含了一个项目对象模型(POM:Project Object Model),一组标注集合,一个项目声明周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑可以用更通俗的方式来说明。我们知道,项目开发不仅仅是写代码而已,期间会伴随着各种必不可少的事情要做,下面列举几个感受一下:

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

  2、我们辛辛苦苦写好了Java文件,可以只懂0和1的白痴电脑却完全读不懂,需要讲它编译成二进制字节码。

    好歹现在这项工作可以由各种集合开发工具帮我们完成,Eclipse、IDEA等都可以价格代码即使编译。当然,如果你嫌生命漫长,何不铺张,也可以用记事本来敲代码,然后用javac命令一个个地去编译,逗电脑玩。

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

  4、再优雅的代码也是要出来卖的。我们后面还需要把代码与各种配置文件、资源整合到一起,定型打包,如果是web项目,还需要将之发布到服务器,供人蹂躏。

  试想,如果现在有一种工具,可以把你从上面的繁琐工作中解放出来,能帮你构建工程,管理jar包,编译代码,还能帮你自动运行单元测试,打包,生成报表,甚至能帮你部署项目,生成Web站点,你会心动吗?

  Maven就可以解决上面所提到的这些问题

maven依赖管理的概念

Maven的一个核心特性就是依赖管理。当我们涉及到多模块的项目(包含成百个模块或者子项目),管理依赖就变成一项困难的任务。Maven展示出了它对处理这种情形的高度控制。传统的WEB项目中,我们必须将工程所依赖的jar包复制到工程中,导致了工程的变得很大。那么maven工程是如何使得工程变得很少呢?分析如下:

 

 

 

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

  那么问题来了

    第一:"存放jar包的仓库"长什么样?

    第二:通过读取pom.xml文件中的坐标,再到仓库中找到jar包,会不会很慢?从而导致这种方式不可行!

      第一个问题:存放jar包的仓库长什么样,这一点我们后期会分析仓库的分类,也会带大家去看我们的本地的仓库长什么样。

      第二个问题:通过pom.xml文件配置要引入的jar包的坐标,再读取坐标并到仓库中加载jar包,这样我们就可以直接使用jar包了,为了解决这个过程中速度慢的问题,maven中也有索引的概念,通过建立索引,可以大大提高加载jar包的速度,使得我们认为jar包基本跟放在本地的工程文件中再读取出来的速度是一样的。这个过程就好比我们查阅字典时,为了能够加快查找到内容,书前面的目录就好比是索引,有了这个目录我们就可以方便找到内容了,一样的在maven仓库中有了索引我们就可以快速找到jar包

maven一键构建概念

  我们的项目,往往都要经历编译,测试,运行,打包,安装,部署等一系列过程

什么是构建?

  指的是项目从便不易,测试,运行,打包,安装,部署整个过程都交给maven进行管理,这个过程成为构建

一键构建

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

Maven规范化构建流程如下:

 

 我们一起来看Hello-Maven一键运行的过程,通过tomcat:run的这个命令,我们发现现在的工程编译,测试,运行都变得非常简单。

posted @ 2023-02-22 10:56  肥宅快乐水~  阅读(53)  评论(0)    收藏  举报