Maven在Java/JavaEE开发中的作用

来源:互联网 发布:保健品电话数据资源 编辑:程序博客网 时间:2024/05/18 02:15
成功的软件工程需要构建工具。在Java世界中,并不缺少这样的工具,Ant就是一个标准的典型。

Maven是另一种关于开放资源画面的项目管理/构建工具。与Ant相比,Maven是一个将Ant概念中几个步骤深化了的项目管理工具。它不能建立在Ant之上,但它可以利用Ant构建脚本的优势,甚至生成这种脚本。 

为了使用Maven,你首先必须创建一个项目对象模型(POM)。POM的默认值是project.xml文件,它描述了程序及其相关性。Maven用POM来构建项目和相关文件。一旦你有了一个基本的project.xml文件,你可以把它用作你所有项目的模板。 

Maven的目标大致和Ant的类似。Maven还有许多实用的预定目标,如关于编辑、配置、生成文件、生成Ant构建脚本、创建jars、wars、ears文件等,都要用到它。如果漏掉了什么,你可以随意加入自己想要的目标。 

Maven两个最酷的特点是jar   repositories和项目站点生成。Jar   repositories是包含jar文件的本地或远程站点。当你在建立时间证明jar文件和POM的依赖关系时,Maven将自动将jar文件所需版本下载到本地存储库。这个特点可以让你更加轻松地构建项目。项目站点生成目标则是创建一个项目的专业网站,包括强调语法的源代码的链接、代码格式、javadoc、单体测试等等。 

通常对Maven的一个抱怨是有时它很慢。一些开发人员已使用Maven来创建一个用来日常开发的Ant文件,然后用Maven分配他们的项目或作为晚上进程的一部分。 

无论如何,Maven的这些特点至少让它值得你认真地考虑。   

1     maven和ant的比较 

  第一:每次和别人说maven的时候,很多会认为是全新的东西而不肯放弃ant。其实,ant脚本是可以直接运行在maven中的。 

如果要说maven和ant有什么差别,我觉得最大的差别就是在于maven的编译以及所有的脚本都有一个基础,就是POM(project   object   model)。这个模型定义了项目的方方面面,然后各式各样的脚本在这个模型上工作,而ant完全是自己定义,显然maven更胜一筹。 

第二:Maven对所依赖的包有明确的定义,如使用那个包,版本是多少,一目了然。而ant则通常是简单的inclde   所有的jar。导致的最终结果就是,你根本无法确定JBoss中的lib下的common-logging   是哪个版本的,唯一的方法就是打开   META-INF   目录下MANIFEST.MF。估计JBoss迟早会转向Maven的。 

第三:Maven是基于中央仓库的编译,即把编译所需要的资源放在一个中央仓库里,如jar,tld,pom,等。当编译的时候,maven会自动在仓库中找到相应的包,如果本地仓库没有,则从设定好的远程仓库中下载到本地。这一切都是自动的,而ant需要自己定义了。这个好处导致的结果就是,用maven编译的项目在发布的时候只需要发布源码,小得很,而反之,ant的发布则要把所有的包一起发布,显然maven又胜了一筹。 

第四:maven有大量的重用脚本可以利用,如生成网站,生成javadoc,sourcecode   reference,等。而ant都需要自己去写。试试   maven   site   的效果。 

第五:maven目前不足的地方就是没有象ant那样成熟的GUI界面,不过mavengui正在努力中。目前使用maven最好的方法还是命令行,又快又方便。 

  

最后,总结一下,转向maven会为你节省更多的时间。 

  

当您的项目逐渐变得庞大和复杂时,最好使用一种构建工具来自动构建您的项目。例如,一个典型的java项目,每次构建时都要经历编译java源代码,把class文件打成.jar包,生成javadocs文档等步骤。这些步骤都可以用构建工具帮您自动完成。说到构建工具,大家肯定都知道make,但make是依赖具体操作系统的。Java-centric选择了Ant,一种可以跨平台的使用xml来替换Makefile糟糕语法的构建工具。 
        来自Apache软件组织的构建工具Maven更可能成为您的选择,Maven不仅提供了out-of-the-box的解决方案来统一处理构建相关的任务,还提供了信息统计的功能。使您的开发团队可以更好地跟踪项目的进展情况。 

Maven的原理 
        作为构建工具,Maven和Ant一样,利用构建配置文件进行编译,打包,测试等操作。您可以用Maven自带的功能进行任何的操作,但前提是做好了相应的配置。当然,修改已有的模板来开始新的项目是个好方法。除非您在写特有的task,不然都会有target重用的问题。 
        Maven进行了一些改进。您将项目配置内容写成XML文件,并且可以使用很多Maven自带的功能。另外还可以在Maven项目中调用任何Ant的task。 
        Maven自带的 "goals "有以下功能: 
            编译源代码 
        产生Javadoc文档 
        运行unit测试 
        源代码文法分析 
        产生违反团队编码规范的详细报告 
        产生CVS最新提交报告 
        产生CVS更改最频繁的文件报告和提交最频繁的开发人员报告 
        产生可以交叉引用的HTML格式的源代码,等等。 
Maven的功能是通过众多的插件来实现的。在Maven的网站上可以找到一个Maven插件列表。例如,创建EAR包和控制J2EE应用服务器的插件。 
        Maven的另外一个特色是利用中央构建资源库去访问您项目中需要的.jars(像Perl 's   CPAN)。您只用列出需要的.jars及相应版本,Maven会自动下载。当第一次运行Maven,或者运行一个新的goal时,可以在控制台上看到中央构建资源库下载.jars的详细过程。这一功能不仅使Maven更加容易使用,而且能帮您省下不少搜集维护本地或远程构建资源库中.jars版本的时间和精力。 
        Maven的易用性来源于配置过程的自然性。Out   of   the   box,不仅提供了项目构建的基本步骤,还可以自定义项目对象模型(POM)。POM基于易于编辑的XML格式,由不同元素的名称和属性组成。一旦您完成POM的配置,就可以在构造过程中使用很多Maven自带的激动人心的功能。 
        Maven也易于自定义,特别是当您已经熟悉Ant后。您可以增加新的功能或钩子到已有的构造过程以添加自定义的步骤。通过修改maven.xml文件可以添加自定义的功能。 
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号世纪乐知(北京)网络技术有限公司 提供技术支持江苏乐知网络技术有限公司 提供商务支持Copyright © 1999-2010, CSDN.NET, All Rights Reserved

0 0
原创粉丝点击