摘要:Maven1.0已经历了几年的时间,并且作为Ant的替代品已被广大的开发人员所接收,但它并没有在很大程度使开发人员从Ant的build.XML文件中解脱出来。Maven1.0速度慢并且笨拙,使用起来的困难度并不亚于使用Ant的项目。事实上,它的核心是基于Ant实现的。在经过了几乎彻底的重写后,Maven2.0诞生了。
一个Java项目中最困难的地方就是如何着手启动它。在启动项目之前,我们必须配置好所有的逻辑关系。比如,Java源代码应该放在何处?单元测试应该在何处进行?依靠的jar包应该如何放置?如何构建项目,如何形成文档,如何测试和部署项目?在这种情况下,开发人员不同的处理选择将会影响项目的余下部分。您的选择可能会使你陷入困境,也可能会在将来证实您是一位Java架构大师。我们假定后者是我们奋斗的目标,接下来就进入我们的正题。
构建一个Java项目可以使用很多工具,其中包括Ant。Ant作为一款具有革命性的工具,一直是众多开发者使用工具中的首选,它能使开发人员摆脱使用大量make命令的苦海。对于那些不太熟悉make命令的人来说,他们有充足的理由来表明使用命令并不是构建Java项目的最好工具,因为它不具备平台独立性并且不易使用。Ant的出现解决了以上的问题,它使用了一个平台独立的工具,该工具能够解析XML配置文件,即build.xml。虽然Ant由于其诸多的优点而备受欢迎,但它同样有一些缺点。build.xml文件由于采用了极其简短的描述方式,使得开发人员需要预先学习它的语法。虽然学习曲线不是很陡峭,但Java开发人员更应该把时间放在开发上面。
Maven是新一代的生力军,它的境遇正好和几年前的Ant十分类似。Maven1.0已经历了几年的时间,并且作为Ant的替代品已被广大的开发人员所接收,但它并没有在很大程度使开发人员从Ant的build.xml文件中解脱出来。Maven1.0速度慢并且笨拙,使用起来的困难度并不亚于使用Ant的项目。事实上,它的核心是基于Ant实现的。在经过了几乎彻底的重写后,Maven2.0诞生了。
版权声明:任何获得Matrix授权的网站,转载时请务必保留以下作者信息和链接
作者:Chris Hardin;mycj(作者的blog:http://blog.matrix.org.cn/page/mycj)
原文:http://www.onjava.com/pub/a/onjava/2006/03/29/maven-2-0.Html
Matrix:http://www.matrix.org.cn/resource/article/44/44475_Maven2.html
要害字:Maven2
Maven2.0的优点
Maven2.0有许多很好功能,这些功能不仅仅是帮助您构建项目。假如您刚刚开始启动一个Java项目,并且想使该项目快速地开展下去,Maven2.0能够在几分钟内达到您的要求。以下是Maven2.0的一些优点:
--标准的项目布局和项目结构生成器
--标准的依靠治理机制
--多项目支持
--在开发者需要的时候及时地下载新的插件和功能部件
--生成最新项目信息的网站
--集成了源代码控制软件:CVS和Subversion
以上列表展示的只是Maven2.0特点中的一小部分。但这足以使Maven2.0成为一个构建治理系统可靠的选择。既然我们已经知道Maven是个什么东西了,接下来让我们看看如何使用它。
入门
我们要做的第一件事情就是设置目录结构,但这并不需要让我们手动设置,Maven会根据您开发的项目类型来为您做这件事。一旦您下载并解压了最新发布的Maven 2.0,您应该将Maven所在目录下面的bin目录添加到您的系统路径下。您可以运行命令mvn -version来测试您的安装。
既然已经安装上了工具,让我们看看创建一个简单的Java项目的例子。Maven使用原型来决定目录结构是如何展现的。Maven自带了几个内建的原型,您也可以自定义原型。
mvn archetype:create -DgroupId=com.oreilly -DartifactId=my-app
您看,这就生成了我们的项目布局。
my-app
----src
----main
----java
----com
----oreilly
----test
----java
----com
----oreilly
对,就这么简单。这种目录结构可以通过创建一个新的原型来覆写,但并不推荐这么做,因为Maven的一个优点就是使用标准的目录结构。该目录结构包含两个源代码树,一个是Java应用程序的源代码,另一个是单元测试代码。同时您也许会注重到,当第一次运行Maven的时候,它会进行一些下载工作。当您开始调用工具时,Maven会根据您使用的插件来更新自身的一些所需功能。Maven默认会从Ibiblio存储库中得到更新。您可以在Maven安装目录下的conf目录中,或者项目自身中修改Maven远程存储库的选择。
您会发现Maven在my-app目录下创建了一个pom.xml文件。这是项目的最基本部分。pom.xml文件包含了一组指令,这些指令告诉Maven如何构建项目和包含哪些其它的非凡指令(POM是“项目对象模型”的缩写)。在默认的情况下,Maven包含了JUnit的依靠以此来鼓励单元测试。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.oreilly</groupId>
<artifactId>my-app</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>Maven Quick Start Archetype</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>