Maven详解

来源:互联网 发布:qq的smtp端口号 编辑:程序博客网 时间:2024/06/06 09:57

前言

最近小编在学习Maven的知识点,跟我的感觉就是太好用了,对于项目来说不但减少了负担,而且还面向对象,给开发人员减少了很多的负担,小编分享一下吧


What Maven

其实如果让用一句话也来描述maven的话那就是maven是Apache公司开源项目,是项目构建工具,用来依赖管理。是不是很简单啊


Why Maven

如过说为什么用maven给我的直观感觉就是方便管用,无论是对项目来说还是对开发人员都有极大地好处,效率,bug,轻量级开发

  • 1不再拷贝jar包,项目不需要存放jab这样就是导致项目源代码变小了
  • 2使用maven开发的工厂,如果环境统一导入别的maven的项目不会报错
  • 3代码耦合度进一步降低
  • 4方便项目进行升级
  • 5节省人力成本

How Maven

如果说如何用Maven,那么我就得说,必须好好的学习里面原理性的问题,其实就是查找仓库这么回事,也是非常简单的


依赖管理

首先我们先说一下Maven的好处来引入我们是如何用的,好处:我们用传统的项目和maven构建的项目相比,maven项目的比传统项目的占用的空间少的多!大概是100多kb左右?这是maven的好处!可是maven为什么可以达到这么小的空间呢,我们java开始的时候一定会用的就是jar包,如果空间这么小,那么jab去哪里了?首先肯定的一点就是jab一定没有在项目中,要不空间也不会这么小


那jar包在那?其实jab是存在jab包仓库中,并没有在我们的项目中,(jab仓库又叫做maven仓库),如果我们的jab存在与maven仓库中,那仓库中肯定有很多的jab,假如我们项目中需要使用到struts2-core-2.3版本的jab,这个时候应该怎么去寻找和找到呢?


当我们项目和maven仓库连接起来的时候我们使用的是坐标进行寻找我们的jar包,这个时候你会想?坐标是x与y。其实抽象点看就是符合x与y的条件我们就可以找到,首先我们应该看我们jar包的组成,1由谁创作 2 叫什么名字的jar包,3 什么版本的jar包。只要通过着3个条件就可以找到我们的jar包,其实这个过程就体现在依赖管理:依赖指的是依赖jar包,管理:管理jar包,所以依赖管理就是,我们要通过maven来管理我们的jar包,根据图你就知道了
这里写图片描述


根据坐标我们可以找到我们jar包,但是我们如何找到我们的仓库呢?
这里写图片描述


项目构建

项目在编码完成之后,要对项目进行编译,测试,打包,部署一系列的操作,而这一系列的操作都是通过命令来实现,我们使用mvn tomcat:run 命令就是发布到tomcat上,非常的方便和简单
这里写图片描述


maven安装

首先我们看看本地仓库的文件夹
这里写图片描述


启动maven的时候我们需要配置环境变量,为什么要配置环境变量呢?环境变量包含path和classpath配置,他们使用告诉操作系统编译器运行和生成类的路径,这样程序才可以编译和运行,
配置环境变量,然后再将MAVEN-HOME 环境变量配置到path当中,而且必须要jdkl环境变量,命令测试是否成功:maven -version
这里写图片描述

这里写图片描述


Where jar包?

由于我们要下jab,在我们开发人员里有一个本地仓库是在我们计算机上的,这里面的jab很少,所以当我们不够用的时候我们可以去私服:(私服是存在与局域网中的,所以开发人员有两种方式1在这个局域网中就可以连接使用,私服中存在大量的jab,但也不是所有的,当他不够用的时候他回去中央仓库去下载,中央仓库是由阿帕奇公司开发的,并且它的服务器是在美国)2是在中央仓库去下载,但是非常的慢(前提是网快,而且可以翻墙)

这里写图片描述


maven常用命令

  • 1 mvn clean :清理
  • 2 complie :编译。把 .java编译为.class 文件
  • 3 test:单元测试
  • 4 package:打包—-项目根目录target目录 web project –war包,Java project –jar包
  • 5 install:安装—本地仓库,本地多个项目用一个jar包, 我们也可以吧我们所有用到的打成一个jar包然后放到本地仓库中供大家使用

maven项目生命周期

上述所说的1234命令其实就是maven的一个生命周期,执行第4个操作就是自动执行1234所有的命令,在maven中存在“3套”生命周期,每一套生命周期相互独立,互不影响(互不影响指的是我们执行默认生命周期的时候,不会执行清理生命周期,因为清理生命周期不属于默认生命周期),在一套生命周期内,执行后面的命令前面操作会自动执行

CleanLifeCycle:清理生命周期 clean
defaultLifeCycle:默认生命周期: compile ,tset,package,install,deploy
siteLifeCycle:站点生命周期: site


maven概念模型

描述1依赖管理-pom—-不用拷贝jar,用dependency去仓库找,Pom.xml项目对象模型包含的信息
1本地项目的坐标信息
2本项目jdk编译版本的信息
3本项目需要的依赖信息
这里写图片描述


描述2项目构建:我们命令组成了我们的生命周期(一个个的阶段就是生命周期)
这里写图片描述


总结

基本上总结都算的上对于我来说是精华了,我希望每一个人看完我的博客之后都对maven有了很深的影响,这样我的就帮助了很多人!只有把学到的技术分享出来才可以学到更多的知识,小肚鸡肠永远是坏运气!我走的就是大气路线,嘿嘿

原创粉丝点击