志在指尖
用双手敲打未来

maven是什么(Maven项目管理工具介绍)

maven是什么

关于大数据开发的Maven可谓是一个略微复杂的构成,从基础概念到它的详细用处都可谓是有满满的干货知识。这里先用一句话来进行归纳,Maven是一个项目办理工具,能够对Java项目进行构建、依靠办理,是一个主动化构建工具。
一、什么是Maven
Maven,用于Java项目的构建,依靠办理,项目信息办理的项目办理工具.是Apache安排旗下的开源项目.它的核心功用是一个具有跨渠道特性的构建工具,协助咱们主动化构建,并供给一个完好的优化的构建生命周期模型,和构建任务所需的基础组件/插件.它仍是一个依靠办理工具和项目信息办理工具,便利开发人员更好的办理依靠与防止项目信息紊乱等问题.除此之外还供给了一套规范的约定规则,减轻不同项目的差异性.
二、Maven的效果
效果一:
个人理解maven主要是用来处理导入java类依靠的jar,编译java项目主要问题。(最早手动导入jar,运用Ant之类的编译java项目)
以pom.xml文件中dependency特点办理依靠的jar包,而jar包包含class文件和一些必要的资源文件。
当然它能够构建项目,办理依靠,生成一些简略的单元测验报告,像现在公司的持续集成都广泛的运用maven,当你接触一些项目今后你就会有更深的领会。
效果二:
比方之前项目导入jar。是通过copy方法导入项目中,并且还会存在jar之间的依靠和冲突。而maven处理了这些问题,只是网速欠好的时分有点麻烦。只需求下载-bin.zip就能够了。
效果三:
jar包办理,防止jar之间依靠起冲突。小组之间树立个私服务,大家都用通用的maven配置文件,不必自己手动去下载jar,pom文件会主动办理下载好的jar包。
效果四:
Maven是基于项目目标模型,能够通过一小段描绘信息来办理项目的构建,报告和文档的软件项目办理工具。Maven能够很便利的帮你办理项目报告,生成站点,办理jar文件,等等。例如:项目开发中第三方jar引证的问题,开发进程中合作成员引证的jar版别或许不同,还有或许重复引证相同jar的不同版别,运用maven关联jar就能够配置引证jar的版别,防止冲突。
三、Maven坐标系统
Maven构件:指的是平常项目打包完成后的的一些jar,war等文件.
Maven坐标为各种构件引入了次序,任何一个构件都必须明确界说自己的唯一坐标;而一组Maven坐标便是通过以下一组元素界说的:
groupId:界说当时Maven项目从属的实践项目
artifactId:界说实践项目中的一个Maven模块/项目,引荐运用groupId作为artifactId的前缀
version:界说Maven模块/项目所在的版别,Maven界说了一套完好的版别规范
packaging:界说Maven模块/项目的打包方法
classifier:协助界说一些与主构件对应的附属构件
Maven库房便是基于Maven的坐标系统
四、Maven库房
得益于Maven的坐标机制,任何Maven项目运用的任何一个”构件”的方法都是相同的;在此基础上,Maven能够在某个位置一致贮存所有Maven项目共享的”构件”,这便是库房;因为库房,所以Maven项目不再需求各自贮存依靠的”构件”,转而只需声明这些依靠的坐标,在需求的时分,Maven会主动依据坐标找到库房中的”构件”,并运用它们.
库房的分类有两种,本地库房与长途库房;当Maven依据坐标寻觅”构件”的时分,Maven会先查看本地库房,假如本地库房存在此构件,则直接运用;假如本地库房不存在此”构件”,或需求查看是否有更新的版别,Maven就会去长途库房查找,当发现所需的”构件”后,就会下载到本地库房后再运用;假如终究本地库房与长途库房都无法找到所需求的”构件”时,Maven就会报错.
五、Maven构建概念及进程
(1)构建并不是创立,创立一个工程并不等于构建一个项目,那么咱们就从如下三个方面来了解构建。
1.纯Java代码
Java是一门编译型言语,.java扩展名的源文件需求编译成.class扩展名的字节码文件才能够履行。所以编写任何Java代码想要履行的话就必须通过编译得到对应的.class文件。
2.Web工程
当咱们需求通过浏览器访问Java程序时就必须将包含Java程序的Web工程编译的成果“拿”到服务器上的指定目录下,并启动服务器才行。这个“拿”的进程咱们叫布置。
咱们能够这样理解,为编译的WEB工程是米,而编译好的WEB工程是饭,这个编译进程便是生米煮成熟饭。
3.实践项目
在实践项目中整合第三方结构,Web工程中不仅包含了Java程序和JSP页面、图片等静态资源之外,还包含了第三方结构的jar包以及各种各样的配置文件。所有这些资源都必须按照正确的目录结构布置到服务器上,项目才能够运转。
因而,构建便是以咱们编写的Java代码、结构配置文件、国际化等其他资源文件、JSP页面和图片等静态资源作为“原材料”,去“出产”出一个能够运转的项目的进程。
(2)构建环节
1.整理:删除以前的编译成果,为重新编译做好准备。
2.编译:将Java源程序编译为字节码文件。
3.测验:针对项目中的要害点进行测验,保证项目在迭代开发进程中要害点的正确性。
4.报告:在每一次测验后以规范的格式记载和展示测验成果。
5.打包:将一个包含许多文件的工程封装为一个压缩文件用于装置或布置。Java工程对应jar包,Web工程对应war包。
6.装置:在Maven环境下特指将打包的成果——jar包或war包装置到本地库房中。
7.布置:将打包的成果布置到长途库房或将war包布置到服务器上运转。maven

Maven项目管理工具介绍

Maven的一个核心作用便是办理项目的依靠,这个依靠就能够了解成jar包。
有了它就不必再去网上一个一个找jar包了,直接增加jar包的坐标就好。
那么其具体怎么导入呢?
一、依靠办理
在maven工程中,有一个核心装备文件pom.xml,在该装备文件中即能够引进依靠。
1本地库房引进
标签就比如曾经的lib包,标签也就对应着jar包。
其中关于标签名:
groupId:界说当时项目(jar包)隶属的实践项目组。artifactId:界说当时项目(jar包)的名称。version:界说当时项目(jar包)的版别号。正是由于有了version这个标签的存在,经过该标签一致版别起来也方便了很多。
由于这两种依靠很常见,我本地库房中已经有了,所以导入依靠时根据提示就能够导入。
此外在开发工具中也能够直接查找依靠:
运用快捷键:Alt+Insert,能够查找对应的依靠,点击即能够引进依靠。
不过上述这两种情况,都是本地库房中存在对应的依靠才能够被查找到。
假如本地库房没有,就需求运用到私服了。
2私服引进
昨天在装备文件夹中就装备过对应的私服。
运用的是阿里云私服,将其途径仿制下来访问,能够访问到如下界面:
经过文件查找功用能够查找到需求的依靠,比如我这边查找的是druid。
找到对应的jar包点击,能够下载对应的jar包,但是假如是运用maven,不必下载。
将依靠仿制后在项目中引进即可。
在引进依靠后开发工具右下角会呈现如下提示:
点击importChanges就完成依靠的引进了。
一起也会将该依靠下载到本地库房中。
二、依靠装备
在引进需求运用的依靠后,有时分不能直接就运用当时的依靠,需求对这些依靠进行装备。
1依靠规模设置
maven的运转环境有三种:编译classpath,测验classpath,运转classpath。
而依靠规模设置便是用来操控依靠与这三种classpath之间的关系的。
其中依靠规模都是在标签中装备:
①编译依靠规模compile
假如没有指定,默许便是这种依靠规模。
运用此依靠规模的Maven依靠,对于编译、测验、运转三种classpath都有用。
典型的比如便是jdbcTemplate,它在编译、测验和运转代码时都需求。
②测验依靠规模test
运用此依靠规模的Maven依靠,只对测验classpath有用。
在编译和运转项目期间都不需求运用此依靠。
典型的比如便是Junit,它只在测验代码时有用。
③已提供依靠规模:provided
运用此依靠规模的maven依靠在编译和测验classpath有用,但运转时无效。
典型的比如便是servlet-api。
编译和测验的时分需求运用servlet-api中的办法,但是运用tomcat运转项目的时分不需求。
咱们查看下Tomcat的文件途径,会发现其本身就自带了该jar包。
所以Tomcat在运转期间会自动提供这个依靠。
假如咱们引进的该依靠在运转时也有用,一旦和Tomcat自带的版别不一样,就会呈现冲突。
④运转时依靠规模:runtime
运用此依靠规模的maven依靠对于测验和运转classpath有用,但在编译时无效。
典型的比如是JDBC驱动实现。
项目中只要在履行测验或者运转项目的时分才需求该依靠。
⑤系统依靠规模:system
该依靠和provided依靠规模完全一致。
但是此依靠不是来自Maven的中心库房。
运用system规模的依靠时有必要经过标签指定依靠文件的途径。
典型的比如是Oracle的驱动包。
该依靠从中心库房无法下载,需求先将Oracle的驱动包下载到本地,再经过本地途径引进。
该依靠规模了解即可,运用不常见。
留意:
上述编译都是指对项目主代码的编译,不包含对于测验代码的编译。
2依靠版别保护
事实上,在一个项目中,需求引进的依靠是很多的,可能有几十个。
而各个依靠又有不同的版别,为了一致保护版别,能够专门将依靠的版别抽取出来一致办理:
在标签中放入各个依靠的版别号。
版别标签命名格式为依靠名.version。
在对应的依靠中运用${}引进前面界说好的版别即可。

未经允许不得转载:IT技术网站 » maven是什么(Maven项目管理工具介绍)
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

志在指尖 用双手敲打未来

登录/注册IT技术大全

热门IT技术

C#基础入门   SQL server数据库   系统SEO学习教程   WordPress小技巧   WordPress插件   脚本与源码下载