为何要用Maven?

    早期还在学怎么用Ant构建项目时,就有看到说Maven是Ant的替代品,但真正意义去了解Maven,仍是由于之前的公司一老员工在作OpenJMS二次开发时,从网上下载了源码,而后用Maven构建它。

当时跟他还由于这个产生了分歧,缘由就是在本人看来,eclipse的功能已经很是强大,建立项目、编译、打包、导出、发布,这些功能eclipse都能作,为何还要用一个学起来有点复杂,用起来也不是很方便的工具?

说说最近遇到几个现象:

一、之前要想在eclipse里用Maven功能都是要额外装m2eclipse插件,可是从eclipse4.4(代号Luna,2014年推出)开始,maven成了它的标准插件,从官网下载下来的eclipse就已经自带Maven功能

二、SpringFramework官网,再也不提供Spring的jar包下载连接,而是只提供了Maven仓库配置信息。

三、在github网站里,不少流行的框架,其源码根目录下都有一个pom.xml的文件,也就是说默认都是用Maven来构建项目。

四、在建行这边开发的项目,基本都是用Maven来构建,虽然开发的电脑不能联外网,但建行内部用Nexus本身搭建了一个Maven仓库。

五、一同窗,他在惠普里作的项目也是用Maven构建,也是内部自建Maven仓库。

这些种种迹象说明了Maven已经成为一个标杆,就算如今暂时没用它,但也不得不去了解它。

由于Maven功能不少,因此看起来会以为很复杂,天然会以为学起来难度比较大。这也就让不少本来想学习用Maven作项目构建的人,望而却步。

因此到底用,仍是不用,这须要一些权衡判断,所谓工具,就是提供了一些自动化的功能,用它的时候会很方便,不用的话就什么都得本身手动操做。

总结一下Maven能够用上的几种场景

一、建立项目,自动关联和下载依赖的jar包。html

用Eclipse新建项目时,建立的只是一个空的项目,若是要加入其余框架的功能须要手动导入jar包。通常的处理方法,就是到对应的官网下载相应的jar包。这时候会存在一个疑惑,就是从官网下载下来的软件包里,包含了它全部功能的jar包,哪一些jar包有用,哪一些没用,比较笨的办法就是把全部jar包都扔到项目的lib里面。这样就形成整个项目体积庞大,增长了项目发布的I/O流量,在开发测试时,服务启动时间变长(Tomcat要在更多的jar包中去查找相应的类)。git

另一个问题就是各个jar包版本的问题,像不少框架都关联了apache的commons-lang3,commons-logging等,但不一样框架的版本,对应关联的第三方jar包版本也不同。github

用Maven,就能够很好的解决jar包关联问题,好比要Struts框架,只需在pom.xml文件里,添加如下配置apache

<dependency>
  <groupId>org.apache.struts</groupId>
  <artifactId>struts2-core</artifactId>
  <version>2.3.24.1</version>
</dependency>

Maven就自动的从仓库中下载相应的jar包,导入到项目中,并且它还能自动传递依赖,也就是把struts相关的jar包也导入。tomcat

 

2.升级框架的版本
升级某个框架的版本,但殊不知道与它相关联的哪几个jar也须要跟着升级,和升级到哪一个版本。用法跟上面相似,只需把版本改一下就行。服务器

 

3.自动部署
项目部署到云服务器时,整个过程全是手动部署,须要的步骤有:打开eclipse,编译(若是代码有更新的话),导出war包,上传war包到云服务器上,重启tomcat。若是只是几台服务器,这样步骤还能接受,但若是有几十台,甚至上百台服务器呢?框架

用Maven只需一个命令,就能够把项目自动部署到远程服务器上。eclipse

4.项目编译打包导出maven

这个随意一个IDE都能作到,因此若是要Maven作这件事,可能的场景,就是作没有装IDE的环境里,好比在服务器端Linux环境下。工具

相关文章
相关标签/搜索