已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 关键名词Project:任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM,Poject Object Model)。一个工程可以依靠其它的工程;一个工程也可以由多个子工程构成。POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。GroupId:groupId是一个工程的在全局中唯一的标识符,一般地,它就是工程名。groupId有利于使用一个完全的包名,将一个工程从其它有类似名称的工程里区别出来。Artifact:artifact 是工程将要产生或需要使用的文件,它可以是jar文件,源文件,二进制文件,war文件,甚至是pom文件。每个artifact都由groupId和 artifactId组合的标识符唯一识别。需要被使用(依靠)的artifact都要放在仓库(见Repository)中,否则Maven无法找到 (识别)它们。Dependency:为了能够build或运行,一个典型的Java工程会依靠其它的包。在Maven中,这些被依靠的包就被称为dependency.dependency一般是其它工程的artifact. Plug-in:Maven是由插件组织的,它的每一个功能都是由插件提供的。插件提供goal(类似于Ant中的target),并根据在POM中找到的元数据去完成工作。主要的Maven插件要是由Java写成的,但它也支持用Beanshell或Ant脚本写成的插件。Repository:仓库用于存放artifact,它可以是本地仓库,也可以是远程仓库。Maven有一个默认的远程仓库central,可以从/maven/其中的artifact.在Windows平台上,本地仓库的默认地址是User_Home“.m2“repository. Snapshot:工程中可以(也应该)有一个非凡版本,它的版本号包括SNAPSHOT字样。该版本可以告诉Maven,该工程正处于开发阶段,会经常更新(但还未发布)。当其它工程使用此类型版本的artifact时,Maven会在仓库中寻找该artifact的最新版本,并自动、使用该最新版。2 Maven Build Life Cycle软件项目一般都有相似的开发过程:预备,编译,测试,打包和部署,Maven将上述过程称为Build Life Cycle.在Maven中,这些生命周期由一系列的短语组成,每个短语对应着一个(或多个)操作;或对应着一个(或多个)goal(类似于Ant中的 target)。如编译源文件的命令mvn compile中的compile是一个生命周期短语。同时该命令也可以等价于mvn compiler:compile,其中的compiler是一个插件,它提供了compile(此compile与mvn compile中的compile意义不同)goal;compiler还可提供另一个goaltestCompile,该goal用于编译junit测试类。在执行某一个生命周期时,Maven会首先执行该生命周期之前的其它周期。如要执行compile,那么将首先执行validate,generate- source,process-source和generate-resources,最后再执行compile本身。1.1. Maven的基本功能 构建:比如生成class、jar、war或者ear文件生成文档:比如生成javadoc、网站文档生成报告:比如junit测试报告生成依赖类库:生成文档,说明项目多其他软件的依赖有关SCM:SCM(Software Configuration Management),软件配置管理,比如版本控制,比如bug管理等等发布:生成供发布的分发包,比如生成Struts2的分发包,供提交给用户使用部署:比如,web应用程序,自动部署到指定的服务器上通过我写的商品管理的小例子,演示结合maven和svn的功能。2. Maven使用 2.1. Maven的安装和配置 从官方网站下载最新的Maven分发包/download.html,当前为2.0.9;解压缩到本地;配置maven, 将maven/bin目录设置到windows环境变量Path中检查maven是否安装成功, 在命令行中执行mvn -version 2.2. Maven的基本使用 Maven的基本使用介绍通过命令行编写简单的java和web项目。 2.2.1. 实现Java项目 通过maven在命令行下创建普通java项目,也就是main方法执行的项目或者jar文件的类库。 . 创建Maven项目 执行: mvn archetype:generate 在交互界面中:Choose a number: 回车即可,也就是选择15Define value for groupId: 输入组织id,比如Define value for artifactId:输入项目名称,比如helloworldDefine value for version: 输入版本号,可以直接回车,默认是1.0-SNAPSHOTDefine value for package: java的包名,比如com.easymorse然后回车表示确认上述输入即可。观察helloworld目录(Define value for artifactId输入的项目名称)下生成的文件和目录:项目构建文件: pom.xml代码框架: srcmainjavacomeasymorseApp.java测试代码: srctestjavacomeasymorseAppTest.java . 运行Maven项目 命令行进入helloworld目录Define value for artifactId输入的项目名称)。项目打包 mvn package 检查命令生成了什么?target目录编译了代码编译了测试代码使用junit测试并生成的报告生成代码的jar文件运行打包的jar文件: java -cp targethelloworld-1.0-SNAPSHOT.jar com.easymorse.App 编译源程序 mvn compile 编译并测试 mvn test 清空生成的文件 mvn clean 将maven项目转化为eclipse项目命令行运行: mvn eclipse:eclipse 打开eclipse,菜单选择:fileimportgeneralexisting projects into workspace,在对话框中选中目录,导入即可。如果要清除有关eclipse项目的配置信息: mvn -Dwtpversion=1.0 eclipse:clean 联合使用 mvn eclipse:clean clean 2.2.2. 实现Web项目 通过maven在命令行下创建java web项目。 . 创建Maven项目 在命令行输入,这一步和创建java项目类似: mvn archetype:generate 交互步骤说明:Choose a number: 回车即可,也就是选择18,这里和java普通项目不一样Define value for groupId: 输入组织id,比如Define value for artifactId:输入项目名称,比如helloworldDefine value for version: 输入版本号,可以直接回车,默认是1.0-SNAPSHOTDefine value for package: java的包名,比如com.easymorse然后回车表示确认上述输入即可。需要在pom.xml文件中增加servlet容器的插件: org.codehaus.mojotomcat-maven-pluginorg.mortbay.jettymaven-jetty-plugin6.1.6maven-compiler-plugin1.61.6UTF-8 tomcat插件jetty插件编译插件的配置repository目录的作用repository的位置,在用户目录的.m2目录下。repository目录的作用,对依赖类库的缓存。 . 运行Maven项目 项目打包 mvn package 启动tomcat mvn tomcat:run 启动jetty mvn jetty:run 转化为eclipse项目 mvn -Dwtpversion=1.5 eclipse:eclipse 这样生成wtp插件的web项目。打开eclipse,菜单选择:fileimportgeneralexisting projects into workspace,在对话框中选中目录,导入即可。另外,需要在eclipse里创建一个classpath变量,名称为:M2_REPO,值为系统用户下.m2/repository目录。 3. POM文件的基本配置 3.1. POM介绍 3.1.1. 什么是POM Project Object Model,项目对象模型。通过xml格式保存的pom.xml文件。作用类似ant的build.xml文件,功能更强大。该文件用于管理:源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系等等。 3.1.2. 快速浏览 一个完整的pom.xml文件,放置在项目的根目录下。 4.0.0. 3.2. 基本设置 3.2.1. 协作关系 4.0.0org.codehaus.mojomy-project1.0war groupId : 组织标识,例如:org.codehaus.mojo,在M2_REPO目录下,将是: org/codehaus/mojo目录。artifactId : 项目名称,例如:my-project,在M2_REPO目录下,将是:org/codehaus/mojo/my-project目录。version : 版本号,例如:1.0,在M2_REPO目录下,将是:org/codehaus/mojo/my-project/1.0目录。packaging : 打包的格式,可以为:pom , jar , maven-plugin , ejb , war , ear , rar , par 3.2.2. POM间关系 . 依赖关系 依赖关系列表(dependency list)是POM的重要部分。 junitjunit4.0test. groupId , artifactId , version :scope : compile(default),provided,runtime,test,systemexclusions如何查到依赖的类库?一般可以通过这个网站:比如查询hibernate,可以找到结果列表中的hibernate类库条目。点击:/artifact/org.hibernate/hibernate,选择版本,比如3.2.6ga,即:/art . /hibernate/3.2.6.ga复制文章中的: org.hibernatehibernate3.2.6.ga 到pom.xml文件中即可。是否还需要找到hibernate依赖的pom?不需要,hibernate也会有pom,maven会通过它的pom自动找到它依赖的类库。 . 继承关系 继承其他pom.xml配置的内容。maven提供了一个类似java.lang.Object的顶级父pom.xml文件。可以通过下面命令查看当前pom.xml受到超pom.xml文件的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安全文明管理规定培训课件
- 财产退出协议书
- 货车使用协议书
- 购买商业险协议书
- 贷款合作贷款协议书
- 2025年机械设备安全操作制度培训
- 2025年班组安全标准化培训
- 胫后综合征护理查房
- 急诊科专科护理查房
- 颈部气管损伤护理查房
- 山东省济南市历城区2025-2026学年七年级下学期期中考试英语试卷
- 【物化生 山东卷】2025年山东省高考招生统一考试高考真题物理+化学+生物试卷(真题+答案)
- JG/T 252-2015建筑用遮阳天篷帘
- T/ZHCA 019-2022化妆品去屑功效测试方法
- T/CPMA 016-2020数字化预防接种门诊基本功能标准
- 幼儿园项目式课程教学培训
- 《装配式建筑概论》考核试题及答案
- 【人工智能赋能小学体育教学的对策探究(论文)3800字】
- 社区医院-AI数字员工方案
- 第11课《防恐防暴有办法》课件
- 部编版语文六年级上册 第1单元 3 古诗词三首同步练习(有答案)
评论
0/150
提交评论