maven(一)maven究竟是什么
一、需要解决的问题
1.1、 假如两组开发人员使用不同的IDE在开发一个Java项目,假如A组习惯使用intellij idea,B组习惯使用eclipse,而intellij idea的项目是不能直接在eclipse中使用的,如果两组需要互相引用,这样要么B组学习intellij idea,要么将idea项目转成eclipse格式。不管是哪种方式,都非常耗时,还容易出错,都是不可取的~ 那有没有办法能解决这个问题呢?
1.2、 假如开发人员开发一个项目,或者做一个小demo,使用SSH框架,那么我们就必须将SSH框架所用的几十个依赖的jar包依次找出来并手动导入,超级繁琐。如果我们还希望将项目打包部署,使用到的命令又会多很多,如下:
jar {ctxu}[vfm0Mi] [jar-文件] [manifest-文件] [-C 目录] 文件名
这是一个Java打包指令,也非常繁琐。
上述问题都可笼统概括为项目与项目之间的依赖问题,如果人为手动的解决问题会很繁琐。而使用maven却可以轻松解决。比如上述的打包命令,使用maven只需要:
mvn install //简单方便
二、MAVEN究竟是什么?
2.1、 Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具[百度百科]
我自己的理解是,Maven的核心功能可以概况为合理叙述项目间的依赖关系,通俗点讲,就是通过pom.xml文件的配置获取jar包,而不用手动去添加jar包。如果需要使用pom.xml来获取jar包,那么首先该项目就必须为maven项目,maven项目可以理解为是把java项目和web项目置于maven框架中,本质上java项目还是java项目,web项目还是web项目,但是使用了maven管理框架之后,就可以使用maven提供的一些功能(通过pom.xml添加jar包)。
下面的例子可以带我们提前了解一下如何通过pom.xml文件获取到想要的jar包的,具体后面会详细讲解该配置文件。
pom.xml获取junit的jar包的编写。通过groupId、artifactId、version三个属性来定位一个jar包。
2.2、由于不同的IDE都有Maven的插件,支持使用Maven构建项目。如果团队使用Maven构建项目,那么不论是否有IDE、或者不论IDE是什么,都不会出现因为换IDE导致的项目结构变化的问题。因此可以认为Maven是一个项目构建的标准或者规范,是一个构建工具。