<本文转载自淘宝 QA TEAM>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包放到制定的本地资源库里<localRepository>D:\repo</localRepository>,到这里,一个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权威指南》一书里讲的很细致。文章中如有不妥之处请予以指出,同时也欢迎大家来共同交流、共同学习。谢谢!
分享到:
相关推荐
maven学习笔记maven学习笔记maven学习笔记
**Maven项目学习笔记记录** 在软件开发领域,Maven是一个强大的项目管理和构建工具,尤其在Java开发中广泛使用。本笔记将深入探讨Maven的核心概念、主要功能以及实际应用场景,帮助你更好地理解和掌握这一重要工具...
**Maven学习笔记** 在Java开发领域,Maven是一个不可或缺的构建...本学习笔记涵盖了Maven的基础知识,从安装到使用,希望能为你的Maven学习之路提供帮助。在实际开发中,不断实践和探索,你将更加熟练地驾驭Maven。
**Maven教程:基础篇——尚硅谷学习笔记 2022年** Maven是一个强大的Java项目管理和构建工具,由Apache软件基金会开发。它通过提供一个标准的项目对象模型(Project Object Model,POM)来简化项目的构建过程,并...
这篇学习笔记将深入探讨 Maven3 的核心概念、配置以及在实际项目中的应用。 【描述】: 虽然描述部分为空,但我们可以推断这篇学习笔记可能涵盖了博主在使用 Maven3 过程中的经验分享和技巧总结。通常,这样的笔记...
** Maven基础入门 ** Maven是一个Java项目管理工具,它主要负责构建、依赖管理和项目信息管理。...在`maven_study_01`的学习笔记中,你可以找到更多关于Maven的基础知识和实践案例,帮助你快速上手并掌握这一工具。
### Maven 2 学习笔记 #### 一、Maven 项目的基本结构及创建 Maven使用特定的目录结构来组织项目文件,通过`mvn archetype:create`命令可以快速创建项目模板。例如: ```shell mvn archetype:create -DgroupId=...
总之,Maven3实战笔记(整合)不仅涵盖了Maven的基本原理和核心功能,还深入探讨了如何将Maven应用于实际项目中,解决常见的构建问题,提高构建效率和项目质量。对于Java开发者而言,熟练掌握Maven的使用技巧,将大大...
总结,掌握Maven的高级特性,能够显著提升开发效率,保证项目的稳定性和一致性。多模块开发、继承与聚合以及私服操作是大型项目中的核心实践,对于提升团队协作和项目管理水平具有重要作用。通过深入理解和实践,...
总结,【尚硅谷Maven课程笔记代码资源】是学习和掌握Maven自动化构建的理想材料。它不仅提供了理论知识,还有实际操作的案例,可以帮助开发者快速上手并精通Maven,提高项目管理效率。通过学习这些内容,你将能够更...
在Web项目中,通常会使用maven-war-plugin插件来打包Web应用,生成WAR文件。 Maven的安装和配置是使用Maven进行项目管理的第一步。下载Maven的压缩包,并解压到本地目录中。然后需要将Maven的bin目录添加到环境变量...
【mybatis_maven学习笔记】 在Java开发领域,MyBatis和Maven是两个不可或缺的工具,它们分别在数据访问层和项目构建方面扮演着重要角色。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,...
【Maven学习笔记1】 Maven是一个强大的Java项目管理和构建工具,它可以帮助开发者管理项目的依赖、构建过程、项目信息和报告。本笔记主要涵盖了Maven的基础知识,包括资料收集、安装指南,特别是针对Linux环境下的...
** Maven学习笔记详解 ** Maven,作为Java项目管理和构建工具,是开发人员不可或缺的利器。它通过使用一种标准化的项目对象模型(Project Object Model,POM)来管理项目的依赖关系,构建过程以及配置信息。Maven...
NULL 博文链接:https://bing-zz.iteye.com/blog/1460546
在“培训机构传出的maven学习笔记”中,我们可能涵盖以下几个关键知识点: 1. **Maven的基本概念**:理解Maven的核心概念,如POM.xml文件、仓库(本地仓库和中央仓库)、生命周期和构建阶段(如clean、compile、...