天天看点

Maven 2.0:编译、测试、部署、运行.3

我们需要确保WebApplication子模块包含了所有 的三个jar包,所以需要将这些jar包声明为依赖项。在这个例子中,Utilities项目依赖于Common项目,所以Utilities项目中需要 添加一个对Common项目的依赖。Application子模块也是同样的道理,因为它依赖于Common和Utilities项 目,Utilities又赖于Common。如果这个例子中有60个子模块,并且它们都相互依赖,这会使得新开发者难以算出什么项目依赖于其它项目,所以 这正好是要求确保pom.xml父文件中项目放置顺序要清除的原因。

  以下是Utility模块的依赖项:

Maven 2.0:编译、测试、部署、运行.3

< dependencies >

Maven 2.0:编译、测试、部署、运行.3

< dependency >

Maven 2.0:编译、测试、部署、运行.3

< groupId > com.oreilly groupId >

Maven 2.0:编译、测试、部署、运行.3

< artifactId > Common artifactId >

Maven 2.0:编译、测试、部署、运行.3

< version > 1.0 - SNAPSHOT version >

Maven 2.0:编译、测试、部署、运行.3

dependency >

Maven 2.0:编译、测试、部署、运行.3

dependencies >

Maven 2.0:编译、测试、部署、运行.3

  以下是如何声明Application模块的依赖项:

Maven 2.0:编译、测试、部署、运行.3

< dependencies >

Maven 2.0:编译、测试、部署、运行.3

< dependency >

Maven 2.0:编译、测试、部署、运行.3

< groupId > com.oreilly groupId >

Maven 2.0:编译、测试、部署、运行.3

< artifactId > Common artifactId >

Maven 2.0:编译、测试、部署、运行.3

< version > 1.0 - SNAPSHOT version >

Maven 2.0:编译、测试、部署、运行.3

dependency >

Maven 2.0:编译、测试、部署、运行.3

< dependency >

Maven 2.0:编译、测试、部署、运行.3

< groupId > com.oreilly groupId >

Maven 2.0:编译、测试、部署、运行.3

< artifactId > Utilities artifactId >

Maven 2.0:编译、测试、部署、运行.3

< version > 1.0 - SNAPSHOT version >

Maven 2.0:编译、测试、部署、运行.3

dependency >

Maven 2.0:编译、测试、部署、运行.3

dependencies >

Maven 2.0:编译、测试、部署、运行.3

  最后是WebApplication模块的依赖项:

Maven 2.0:编译、测试、部署、运行.3

< dependencies >

Maven 2.0:编译、测试、部署、运行.3

< dependency >

Maven 2.0:编译、测试、部署、运行.3

< groupId > com.oreilly groupId >

Maven 2.0:编译、测试、部署、运行.3

< artifactId > Common artifactId >

Maven 2.0:编译、测试、部署、运行.3

< version > 1.0 - SNAPSHOT version >

Maven 2.0:编译、测试、部署、运行.3

dependency >

Maven 2.0:编译、测试、部署、运行.3

< dependency >

Maven 2.0:编译、测试、部署、运行.3

< groupId > com.oreilly groupId >

Maven 2.0:编译、测试、部署、运行.3

< artifactId > Utilities artifactId >

Maven 2.0:编译、测试、部署、运行.3

< version > 1.0 - SNAPSHOT version >

Maven 2.0:编译、测试、部署、运行.3

dependency >

Maven 2.0:编译、测试、部署、运行.3

< dependency >

Maven 2.0:编译、测试、部署、运行.3

< groupId > com.oreilly groupId >

Maven 2.0:编译、测试、部署、运行.3

< artifactId > Application artifactId >

Maven 2.0:编译、测试、部署、运行.3

< version > 1.0 - SNAPSHOT version >

Maven 2.0:编译、测试、部署、运行.3

dependency >

Maven 2.0:编译、测试、部署、运行.3

dependencies >

Maven 2.0:编译、测试、部署、运行.3

  现在,我们只需为每个子模块的pom.xml文件添加一个元素来表明它们是一个逻辑构建的一部分:

Maven 2.0:编译、测试、部署、运行.3

< parent >

Maven 2.0:编译、测试、部署、运行.3

< groupId > com.oreilly groupId >

Maven 2.0:编译、测试、部署、运行.3

< artifactId > my - app artifactId >

Maven 2.0:编译、测试、部署、运行.3

< version > 1.0 - SNAPSHOT version >

Maven 2.0:编译、测试、部署、运行.3

parent >   在pom.xml父文件所在的同一个目录中,存在有项目目录:Common, Utilities, Application, 和WebApplication。当我们在该目录中运行mvn package命令时,这些项目会按照依赖顺序而被构建。

   插件和报表

  Maven2.0 有大量的插件可以使用。不幸的是,由于Maven的重写,Maven1.0的插件不能在2.0中使用。尽管如此,还是存在一些可以使用的Maven2.0 的插件。下面pom.xml文件中的插件配置示例是直接从Maven2.0网站上得来的。这个插件是用来配置编译选项的。

Maven 2.0:编译、测试、部署、运行.3

< plugins >

Maven 2.0:编译、测试、部署、运行.3

< plugin >

Maven 2.0:编译、测试、部署、运行.3

< groupId > org.apache.maven.plugins groupId >

Maven 2.0:编译、测试、部署、运行.3

< artifactId > maven - compiler - plugin artifactId >

Maven 2.0:编译、测试、部署、运行.3

< configuration >

Maven 2.0:编译、测试、部署、运行.3

< source > 1.5 source >

Maven 2.0:编译、测试、部署、运行.3

< target > 1.5 target >

Maven 2.0:编译、测试、部署、运行.3

configuration >

Maven 2.0:编译、测试、部署、运行.3

plugin >

Maven 2.0:编译、测试、部署、运行.3

plugins >   Maven报表插件可以用来生成不同的报表,这些报表是在当你使用mvn site命令生成项目的站点时产生的。下面的例子展示了如何使用元素来配置这类插件中的一个。

Maven 2.0:编译、测试、部署、运行.3

< reporting >

Maven 2.0:编译、测试、部署、运行.3

< plugins >

Maven 2.0:编译、测试、部署、运行.3

< plugin >

Maven 2.0:编译、测试、部署、运行.3

< groupId > org.apache.maven.plugins groupId >

Maven 2.0:编译、测试、部署、运行.3

< artifactId > maven - project - info - reports - plugin artifactId >

Maven 2.0:编译、测试、部署、运行.3

plugin >

Maven 2.0:编译、测试、部署、运行.3

plugins >

Maven 2.0:编译、测试、部署、运行.3

reporting >

Maven 2.0:编译、测试、部署、运行.3

  Maven Plugin Matrix是一个十分实用的工具,它能给出哪些Maven插件适合于哪些版本的Maven。

   Maven 和 Eclipse

  如 何能使全世界最好的IDE变得更好了?答案是使用Maven2的插件,它能帮助您寻找依赖项并自动地将它们添加到pom.xml文件中。虽然最好的方法是 首先使用Maven来创建您的项目,然后再用命令mvn eclipse:eclipse来生成Eclipse项目文件,这样最初就能得到一个好的目录结构,但Maven也可通过其Eclipse插件来管理任何 项目。

  您可以在 Eclipse自身的升级器中输入站点http://m2eclipse.codehaus.org/来安装插件。在安装完成并重启IDE后,您需要在 Eclipse的参数选项中配置此插件,设置本地存储库的位置。这是很重要的一步,因为如果Eclipse默认的存储库不能匹配您默认的需求,Maven 会重新下载您的依赖项。配置完成后,将项目导入Eclipse,鼠标右击该项目,选择Maven 2 -> Enable。现在您可以回到之前的步骤,您可以有更多的选项比如添加依赖项,这将弹出一个搜索框,您可以搜索依赖项并添加它们,插件会替你编辑 pom.xml文件。

  插件会使用Maven来构建您的项目,就像Eclipse使用Ant来构建项目一样。如果您想获取更多的关于Eclipse整合Maven的信息,可以查阅Maven站点上的Eclipse集成Maven 2.x使用指南。

  另 一方面,如果您是一个IntelliJ使用爱好者,您也能通过运行指令mvn idea:idea来完成同样的任务。这些IDE 工具能够节省开发人员的时间。例如,如果一个开发人员为一个项目添加了一些特征,团队里的其他开发人员只需从源代码控制器的存储库中重新获取项目文件即 可,这就节省了每个开发人员必须配置IDE的时间。

  结论

  Maven2.0 有着许多实用的特点,并且完成任务十分出色。Maven中最值得称赞的地方就是使用了标准的目录结构和部署。这就使得开发人员能够适应不同的项目,并且不 用学习任何结构方面新的东西,也不用掌握特殊的指令来构建结构。Maven可以通过纯脚本来实现。在文档方面,由于使用了项目站点构建工具,所以当项目构 建完成后,您可以查看所有开发的当前状态。

  毫 无疑问,当提到构建配置的伸缩性,易用性和项目管理方面时,Maven2.0足可以将Ant取而代之。在接下来的几年内,我们将看到Maven作为标准构 建技术更多的使用,直到有人带来了大家公认的“高级捕鼠器”。您可以从下面列出的Maven项目站点上下载Maven。

   资源

  Matrix:http://www.matrix.org.cn

  Onjava:http://www.onjava.com

  Maven项目站点[@[email protected]]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/93029/viewspace-1017812/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/93029/viewspace-1017812/