maven基础篇.docx_第1页
maven基础篇.docx_第2页
maven基础篇.docx_第3页
maven基础篇.docx_第4页
maven基础篇.docx_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一,什么是maven:Maven是什么? 比较正式的定义:Maven是一个项目管理工具,它包含了:一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System), 和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。 当你使用Maven的时候,你用一个明确定义的项目对象模型来描述你的项目,然后 Maven 可以应用横切的逻辑,这些逻辑来自一组共享的(或者自定义的)插件。二,如何配置maven:1,从网站/download.html 获取maven2的文件包;2,解压该maven包,并配置一下环境变量:在系统变量里的添加path :D:dev filesapache-maven-2.0.9-binapache-maven-2.0.9bin3,在dos下输入命令:mvn -v,如果配置正确将会得到maven的版本信息等。三,如何简单使用maven构建一个项目:1,在dos下进入要创建项目的目录,如C盘;2,输入命令创建项目(以实际五彩石项目为例):mvn archetype:create -DgroupId=com.taobao.mytest -DartifactId=five-stone3,命令执行完成后会在当前目录下生成下面的文件结构:4,查看自动生成的默认的pom.xml文件内容:5,配置文件的相关说明: groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成, 如com.taobao.mytest生成的相对路径为:/com/taobao/mytest artifactId: 项目的通用名称packaging: 打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar, parversion:项目的版本name: 项目的名称, Maven 产生的文档用url: 哪个网站可以找到这个项目,提示如果 Maven 资源列表没有,可以直接上该网站寻找, Maven 产生的文档用,一般有自己的资源库时不需要此项。6,运行以下命令:C:five-stonemvn -U clean eclipse:clean eclipse:eclipseC:five-stonemvn -U clean eclipse:clean eclipse:eclipse -DdownloadSources=true7,eclipse加载项目,至此搭建完成。8,一些常用相关的命令操作:在测试方法里增加一条打印的语句:mvn test:运行应用程序中的单元测试,将输出“welcome to taobao!”mvn package:依据项目将在target文件下生成jar文件:five-stone-1.0-SNAPSHOT.jarmvn clean:清除目标目录中的生成结果mvn install:将项目的jar文件添加到资源库中,以备依赖此项目时使用mvn eclipse:eclipse:生成Eclipse项目文件,此时项目可以成功import到eclipse中至此,maven2的入门实践操作到此结束,如果按照上面的步骤能成功的完成到最后,那么你已经具备了最基本的项目构建能力。但是事实上,这些都是最基础的,如果想进一步了解如何管理自己的项目,那么就不能不说到两个核心的配置文件:pom.xml和setting.xml。关于配置文件的理解和maven2的深入学习将在下篇文章提到,欢迎继续关注,谢谢!三,关于两个配置文件:pom.xml和setting.xml关于两个配置文件pom.xml和maven解压后conf文件夹下的setting.xml:先来说说settings.xml,settings.xml对于maven来说相当于全局性的配置,用于所有的项目。在maven2中存在两个 settings.xml,一个位于maven2的解压目录conf下面,作为全局性配置。对于团队设置,保持一致的定义是关键,所以 maven2/conf下面的settings.xml就作为团队共同的配置文件,保证所有的团队成员都拥有相同的配置。当然对于每个成员,都需要特殊的自定义设置,如用户信息,所以另外一个settings.xml就作为本地配置。settings.xml基本结构如下: 几个主要的配置因素:localRepository:表示本地库的保存位置,也就是maven2主要的jar保存位置,默认在$user.dir/.m2/repository,如果需要另外设置,就换成其他的路径,如:D:repo。offline:如果不想每次编译,都去查找远程中心库,那就设置为true。当然前提是你已经下载了必须的依赖包。Servers: 在POM中的 distributionManagement元素定义了开发库。然而,特定的username和pwd不能使用于pom.xml,所以通过此配置来保存server信息 server001 guangyuan my_password $usr.home/.ssh/id_dsa some_passphrase 664 775 id:server 的id,用于匹配distributionManagement库id,比较重要。 username, password:用于登陆此服务器的用户名和密码 privateKey, passphrase:设置private key,以及passphrase filePermissions, directoryPermissions:当库文件或者目录创建后,需要使用权限进行访问。参照unix文件许可,如664和775 Mirrors 表示镜像库,指定库的镜像,用于增加其他库 tb_mirror taobao mirror /pub/maven2 central id,name:唯一的标志,用于区别镜像 url:镜像的url mirrorOf:此镜像指向的服务id Proxies 此设置,主要用于无法直接访问中心的库用户配置。 myproxy true http 8080 proxyuser somepassword *.| id:代理的标志 active:是否激活代理 protocol, host, port:protocol:/host:port 代理 username, password:用户名和密码 nonProxyHosts: 不需要代理的host repositories 和pluginRepositories 定义其他开发库和插件开发库。对于团队来说,肯定有自己的开发库。可以通过此配置来定义。 如下的配置,定义了本地开发库,用于release 发布。pluginRepositories 的定义与repositories类似。 repo-local Internal 开发库 :8082/repo-local true never warn false default releases, snapshots:每个产品的版本的Release或者snapshot(注:release和snapshot的区别,release一般是比较稳定的版本,而snapshot基本上不稳定,只是作为快照)pom.xml文件:通过在 pom.xml 中定义 jar 包版本和依赖,能够方便的管理 jar 文件。pom作为项目对象模型。通过xml表示maven项目,使用pom.xml来实现。主要描述了项目:包括配置文件;开发者需要遵循的规则,缺陷管理系统,组织和licenses,项目的url,项目的依赖性,以及其他所有的项目相关因素。xml 代码:常用元素的说明:groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成artifactId: 项目的通用名称version:项目的版本packaging: 打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar, par1,maven的继承定义:假设定义了一个父项目:4.0.0com.taobaotaobao-parent2.0pompackaging 类型需要pom,用于parent和合成多个项目。那么在其下的子项目中加上如下设置用以继承 com.taobao taobao-parent 2.02,合成(或者多个模块) 一个项目有多个模块,也叫做多重模块,或者合成项目。如下定义: tc-client tc-server3, build 设置 主要用于编译设置,包括两个主要的元素,build和reportbuild 主要分为两部分,基本元素和扩展元素集合注意:包括项目build和profile buildxml 代码. . 4, 插件在build时,执行的插件,比较有用的部分,如使用jdk 5.0编译等等xml 代码 . org.apache.maven.plugins maven-jar-plugin 2.0 false true test . . extensions: true or false,是否装载插件扩展。默认falseinherited: true or false,是否此插件配置将会应用于poms,那些继承于此的项目configuration: 指定插件配置dependencies: 插件需要依赖的包executions: 用于配置execution目标,一个插件可以有多个目标。5, 资源(resources)你项目中需要指定的资源。如spring配置文件,pertiesxml 代码 . META-INF/plexus false $basedir/src/main/plexus configuration.xml */*.properties . .resources: resource的列表,用于包括所有的资源targetPath: 指定目标路径,用于放置资源,用于buildfiltering: 是否替换资源中的属性placeholddirectory: 资源所在的位置includes: 样式,包括那些资源excludes: 排除的资源testResources: 测试资源列表6, 依赖关系:xml 代码 junit junit 4.0 jar test true .groupId, artifactId, version:描述了依赖的项目唯一标志可以通过以下方式进行安装:使用以下的命令安装:mvn install:install-file Dfile=non-maven-proj.jar DgroupId=some.group DartifactId=non-maven-proj Dversion=1创建自己的库,并配置,使用deploy:deploy-file设置此依赖范围为system,定义一个系统路径。不提倡。type:相应的依赖产品包形式,如jar,warscope:用于限制相应的依赖范围,包括以下的几种变量:compile :默认范围,用于编译provided:类似于编译,但支持你期待jdk或者容器提供,类似于classpathruntime:在执行时,需要使用test:用于test任务时使用system:需要外在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论