Maven学习之三:创建一个简单的Maven项目_第1页
免费预览已结束,剩余4页可下载查看

下载本文档

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

文档简介

1、maven学习之三:创建一个简单的maven项目让我们从开发一个非常容易的例子开头探索maven的核心概念。通过学习,你将会对构建生命周期 (buildlifecycle),maven仓库 (repositories),依靠管理 (dependey management)和项目对象模型 (project object model)有一个基本的理解。1.n创建项目(1) java项目 mvn archetype:create - dgroupid=net.bwda -dartifactid=common(2) web 项目 mvn archetype:create - dgroupid=net.

2、bwda -dartifactid=web-app - darchetypeartifactid=maven-archetype- webapp默认状况下:源代码在basir/src/main/java资源文件在bair/src/main/resources测试代码是在 basedir/src/test2.创建一个容易的项目mvn archetype:create -dgroupid=org.sonatype.mavenbook.ch03 -dartifactid=simple -dpackagename=org.sonatype.mavenbookmvn 是maven2的。archetype

3、:create称为一个maven目标 (goal),像-dname=value这样的对是将会被传到目标中的参数,它们用法-d属性这样的形式,类似于你通过指令行向java虚拟机传递系统属性。archetype:create这个目标的目的通过archetype迅速创建一个项目。在这里,一个archetype被定义为“一个原始的模型或者类型,在它之后其它类似的东西与之匹配;一个原型(prototype)”。maven有许多可用的archetype,从生成一个容易的swing应用,到一个复杂的web应用。本章我们用最基本的archetype来创建一个项目的骨架。这个插件的前缀是“archetype”,

4、目标为”create”。通过上面,我们已经创建了一个基本的mvn项目。查看simple文件夹,名目层次如下:simple/simple/pom.xml /src/ /src/main/ /main/java /src/test/ /test/java以上的名目层次为mvn的标准名目布局(1) maven archtype插件创建了一个与artifactid匹配的名目simple(2) pom.xml:每个项目都有一个pom.xml,里面有它的项目对象模型 (pom)。这个文件描述了这个项目,配置了插件,声明白依靠。也就是说配置jar包依靠关系,仓库地址等都是通过这个文件配置。(3) src/m

5、ain名目:用于存放项目的源码了资源文件。这个名目包含了一下java类和一些配置文件。在其它的项目中,它可能是web应用的文档根名目,或者还放一些应用服务器的配置文件。在一个java项目中,java类放在src/main/java下面,而classpath资源文件放在src/main/resources下面。(4) src/test:存放项目的测试用例。在这个名目下面,src/test/java存放像用法junit这样的java测试类。名目src/test/resources下存放测试classpath资源文件。3.构建项目(1) 进入控制台,cmd进入simple名目,(2) 输入 mvn

6、install指令,执行构建。(3)生成eclipse工程项目,输入: mvn eclipse:eclipse,然后将工程导入到eclipse工程即可。3.mvn基础概念介绍 任何您想build的事物,maven都可以认为它们是工程。 这些工程被定义为工程对象模型(pom,poject object model)。 一个工程可以依靠其它的工程;一个工程也可以由多个子工程构成。(1)maven坐标archetype插件通过名字为pom.xml的文件创建了一个项目。这就是项目对象模型(pom),一个项目的声明性描述。当maven运行一个目标的时候,每个目标都会拜访定义在项目pom里的信息。当jar

7、:jar目标需要创建一个jar文件的时候,它通过观看pom来找出这个jar文件的名字。当compiler:compile任务编译java源代码为字节码的时候,它通过观看pom来看是否有编译目标的参数。目标在pom的上下文中运行。目标是我们希翼针对项目运行的动作,而项目是通过pom定义的。pom为项目命名,提供了项目的一组唯一标识符(坐标),并且通过依靠 (dependencies) ,父 (parents) 和先决条件(prerequisite) 来定义和其它项目的关系。pom也可以自定义插件行为,提供项目相关的社区和开发人员的信息。maven坐标定义了一组标识,它们可以用来唯一标识一个项目,

8、一个依靠,或者mavenpom里的一个插件。下面,我们通过查看pom.xml来了解mvn包含的一些元素的定义解释。 project xms="/pom/4.0.0" xmlns:xsi="/2001/xmlschema-instance" xsi:schemaloion="/pom/4.0.0 /xsd/maven-4.0.0.xsd" modelversion 4.0.0

9、 /modelversion groupid org.sonatype.mavenbook.ch03 /groupid artifactid simple /artifactid version 1.0-snapshot /version packaging jar /packaging name simple /name url /url properties project.build.sourceencoding utf-8 /project.build.sourceencoding /properties dependencies depe

10、ndency groupid junit /groupid artifactid junit /artifactid version 3.8.1 /version scope test /scope /dependency /dependencies /project groupid:团体,公司,小组,组织,项目,或者其它团体。groupid是一个工程的在全局中唯一的标识符,普通 地,它就是工程名。groupid有利于用法一个彻低的包名,将一个工程从其它有类似名称的工程里区分出来。artifact:在groupid下的表示一个单独项目的唯一标识符。artifact是工程将要产生或需要用法的文件

11、,它可以是 jar文件,源文件,二进制文件,war文件,甚至是pom文件。每 个artifact都由groupid和artifactid组合的标识符唯一识别。需要 被用法(依靠)的artifact都要放在仓库(见repository)中,否则 maven无法找到(识别)它们。version:一个项目的特定版本。发布的项目有一个固定的版本标识来指向该项目的某一个特定的版本。而正在开发中的项目可以用一个特别的标识,这种标识给版本加上一个“snapshot”的标志。项目的打包格式也是maven坐标的重要组成部分,但是它不是项目唯一标识符的一个部分。一个项目的groupid:artifactid:ve

12、rsion使之成为一个举世无双的项目;你不能同时有一个拥有同样的groupid, artifactid和version标识的项目。packaging项目的类型,默认是jar,描述了项目打包后的输出。类型为jar的项目产生一个jar文件,类型为war的项目产生一个web应用。包括ear、war、jar、zip、ejb几种类型。dependency:为了能够build或运行,一个典型的java工程会 依靠其它的包。在maven中,这些被依靠的包就被称为 dependency。dependency普通是其它工程的artifact。plug-in:maven是由插件组织的,它的每一个功能都是由插件 提

13、供的。插件提供goal(类似于ant中的target),并按照在pom中 找到的元数据去完成工作。主要的maven插件要是由java写成 的,但它也支持用beanshell或ant脚本写成的插件。repository:仓库用于存放artifact,它可以是本地仓库,也可 以是远程仓库。maven有一个默认的远程仓库-cenal,可以下载其中的artifact。在windows 平台上,本地仓库的默认地址是user_home.m2 epository。snapshot:工程中可以(也应当)有一个特别版本,它的版本号 包括snapshot字样。该版本可以告知maven,该工程正处于开发阶段,会常常

14、更新(但还未发布)。当其它工程用法此类型版本的artifact时,maven会在仓库中寻觅该artifact的最新版本,并自动下载、用法该最新版。(2)maven仓库(repositories)当你第一次运行maven的时候,你会注重到maven从一个远程的maven仓库下载了许多文件。假如这个容易的项目是你第一次运行maven,它首先会做的事情是去下载最新版本的resources插件。在maven中,构件和插件是在它们被需要的时候从远程的仓库取来的。maven自带了一个用来下载maven核心插件和依靠的远程仓库地址(/maven2),现已变更到htt

15、p://。maven仓库是通过结构来定义的在一个maven仓库中,全部的东西存储在一个与maven项目坐标非常匹配的名目结构中。你可以拜访maven仓库/,搜寻commons-io,你能在结果中找到相应的commons-io所对应的pom.xml,将该配置拷贝到你本地的pom即可在windows xp上,你的本地仓库在c:documents and settingsusername.m2repository,在unix系统上,你的本地仓库在/.m2/repository。当你执行mvn install时,把你项目的构件

16、安装到你的本地仓库。maven会从远程仓库下载构件和插件到你本机上,存储在你的本地maven仓库里。一旦maven已经从远程仓库下载了一个构件,它将永久不需要再下载一次,由于maven会首先在本地仓库查找插件,然后才从其他设置的仓库猎取。(3)maven依靠管理 上面的例子中,maven处理了junit依靠的坐标junit:junit:3.8.1,指向本地maven仓库中的/junit/junit/3.8.1/junit-3.8.1.jar。这种基于maven坐标的定位构件的能力能让我们在项目的pom中定义依靠。假如你检查simple项目的pom.xml文件,你会看到有一个文件中有一个段特地处理dependencies,那里面包含了一个单独的依靠junit。 一个复杂的项目将会包含无数依靠

温馨提示

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

评论

0/150

提交评论