您的位置:首页 > 其它

学习笔记之maven2学习总结(3,maven2在淘宝项目的应用)

2011-05-01 09:36 465 查看
2009年2月21日 由 guangyuan

转自:http://qa.taobao.com/?p=568

接下来,在前面两篇文章理解的基础上,我们来看下maven2是如何应用在淘宝项目中。

先看下项目工作环境中的setting.xml文件的配置:



这是一个最基本的设置,设置了登陆此资源库服务器的用户名、密码和资源库的位置。通过这两个设置,我们便可以从指定的资源库中获得相应的Jar包。

下面在看一下在大淘宝TC项目中pom.xml文件的配置:



在这个配置文件里分别设置了对父项目的继承(parent)、此项目的相关信息(groupId、artifactId等)、子模块(module)、编译设置(build)、测试资源(testResources)、插件(plugin)和项目依赖管理(dependencyManagement)。

从此配置文件可以看出:项目“tc-all”分别由五个子模块组成:“tc-client、tc-domain、tc-server、tc-refund-client、tc-refund-domain”。在testResource里定义了测试需要的资源文件的目录。在编译(build)里的插件(plugins)中分别设置了运行测试用例的插件maven-surefire-plugin及此插件运行的内容“ **/*BNCTest.java”(包含BNCTest后缀的java文件,即测试代码);测试覆盖率报告的插件maven-clover2-plugin,具体内容可参见官网:(http://docs.atlassian.com/maven-clover2-plugin/2.3.1/usage.html)。个人觉得这个pom.xml文件里最核心的是dependencyManagement,他里面的各个依赖项dependency将会在执行“ mvn -U clean eclipse:clean eclipse:eclipse ”命令时根据setting.xml里配置的server和mirror从指定的资源库里取出相应版本的jar包放到制定的本地资源库里D:/repo,到这里,一个TC项目的环境算是构建好了,使用eclipse加载此工程可以看到:



此时我想到了《maven权威指南》一书里说的“约定优于配置”, Maven 通过给项目提供明智的默认行为来融合这个概念。 在没有自定义的情况下,源代码假定是在 ${basedir}/src/main/java,资源文件假定是在
${basedir}/src/main/resources 。测试代码假定是在 ${basedir}/src/test 。项目假定会产生一个 JAR 文件。Maven 假定你想要把编译好的字节码放到${basedir}/target/classes 并且在 ${basedir}/target 创建一个可分发的 JAR文件。

项目开发中,开发人员在${basedir}/src/main/java目录中写好自己的代码,而接口测试人员可以根据此目录的设定好的接口在${basedir}/src/test/java目录里进行单元测试和集成测试用例的设计和编码,可以说是开发与测试同时进行,这样自然会减少在功能测试中的bug数。

当所有的开发和测试完成的时候,这时候maven的作用就凸显出来了。通过一些简单的命令,诸如:

mvn package:依据项目将在target文件下生成jar文件;

mvn install: 将项目的jar文件添加到本地资源库中, 以备依赖此项目时使用;

如果你有权限,你还可以将打好的jar包上传到远程的资源库中,供其他项目使用,如(mvn deploy:deploy-file -Dfile=yourJar.jar -Durl=dav:http://your url /repository -DpomFile=pom.xml )。

—————————————————————————

关于maven在淘宝项目的使用就简单的介绍到这里,如果想深入了解maven,《maven权威指南》一书里讲的很细致。文章中如有不妥之处请予以指出,同时也欢迎大家来共同交流、共同学习。谢谢!

在下篇文章里将会谈到持续集成及CruiseControl工具的使用,期待你的继续关注!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: