现在的位置: 首页 > 综合 > 正文

maven 入门介绍

2013年08月08日 ⁄ 综合 ⁄ 共 3092字 ⁄ 字号 评论关闭
  1. Maven是什么?
    Maven: 中文翻译,"专家"。基本上有两个用途
    一是构建工具,  用来把源代码构建成可发布的构件。类似于ant;
    另外一个是项目管理工具。
    官方给出的定义是:
    Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(ProjectLifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

  2. Maven中的关键词
    Project
    : 任何您想build的事物,Maven都可以认为它们是工程。这些工程被定义为工程对象模型(POM,Poject Object Model)。一个工程可以依赖其它的工程;一个工程也可以由多个子工程构成。
    POM:POM(pom.xml)是Maven的核心文件,它是指示Maven如何工作的元数据文件,类似于Ant中的build.xml文件。POM文件位于每个工程的根目录中。
    GroupId:groupId是一个工程的在全局中唯一的标识符,一般地,它就是工程名。groupId有利于使用一个完全的包名,将一个工程从其它有类似名称的工程里区别出来。
    Dependency:为了能够build或运行,一个典型的Java工程会依赖其它的包。在Maven中,这些被依赖的包就被称为dependency。dependency一般是其它工程的artifact。
    Plug-in:Maven是由插件组织的,它的每一个功能都是由插件提供的。插件提供goal(类似于Ant中的target),并根据在POM中找到的元数据去完成工作。主要的Maven插件要是由Java写成的,但它也支持用Beanshell或Ant脚本写成的插件。
    Repository:仓库用于存放artifact,它可以是本地仓库,也可以是远程仓库。Maven有一个默认的远程仓库--central,可以从http://www.ibiblio.org/maven2/下载其中的artifact。在Windows平台上,本地仓库的默认地址是User_Home\.m2\repository
    Snapshot:工程中可以(也应该)有一个特殊版本,它的版本号包括SNAPSHOT字样。该版本可以告诉Maven,该工程正处于开发阶段,会经常更新(但还未发布)。当其它工程使用此类型版本的artifact时,Maven会在仓库中寻找该artifact的最新版本,并自动下载、使用该最新版。

  3. Maven 下载安装(Windows)
    http://maven.apache.org/download.html 
    下载最新版本 Maven 3.0.4 (Binary zip)
    解压到D: 盘.(因为Maven是基于java的, 所以必须先安装JDK并设置了 JAVA_HOME变量。)
    新增以下环境变量-
       MAVEN_HOME : D:\apache-maven-3.0.2
       MAVEN : %MAVEN_HOME%\bin
      (可选) MAVEN_OPTS : -Xms256m -Xmx512m

       在path 前面 加上 %MAVEN%;
    到此, 安装完成。
    可以在命令行输入: mvn -version 。 来验证安装是否成功。

  4. Maven入门实例
    1) 新建项目my-app.
    首先使用cd 切换到放置项目的路径,然后在命令行敲入
    mvn archetype:create -DgroupId=com.tootuu.app -DartifactId=my-app

    如果是首次运行这个命令, 这个命令的运行时间会比较长, 因为会下载一些最新的工具包(artifacts)到你的本地仓库(User_Home\.m2\repository)
    命令执行完成,会生成一个 my-app的目录。(改该目录下有一个pom.xml文件和一个src的文件夹。src/main/java 目录包含了项目的源代码,src/test/java 目录包含了项目的测试代码  自动生成com.tootuu.app.App.java的一个Hello world的测试文件)
    2) 编译打包

    mvn package

    执行完成后, 在my-app目录下会生成target 目录, 里面有产生的my-app-1.0-SNAPSHOT.jar 打包档。
    3) 接下来就可以使用Java 命令来运行这个jar档了

    java -cp target/my-app-1.0-SNAPSHOT.jar com.tootuu.app.App

    打印出 "Hello World!"

  5. 常用命令。(mvn XXX)
    mvn archetype:create :创建 Maven 项目
    validate:验证工程是否正确,所有需要的资源是否可用。
    compile:编译项目的源代码。  
    test:使用合适的单元测试框架来测试已编译的源代码。这些测试不需要已打包和布署。
    Package:把已编译的代码打包成可发布的格式,比如jar。
    integration-test:如有需要,将包处理和发布到一个能够进行集成测试的环境。
    verify:运行所有检查,验证包是否有效且达到质量标准。
    install:把包安装在本地的repository中,可以被其他工程作为依赖来使用。
    Deploy:在集成或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
    clean:清除先前构建的artifacts(在maven中,把由项目生成的包都叫作artifact)。
    site:为项目生成文档站点。

  6.  参考资源
    [1]Maven官方网站. http://maven.apache.org
    [2]Maven POM文件参考结构. http://maven.apache.org/ref/current/maven-model/maven.html
    [3]Super POM. http://maven.apache.org/guides/introduction/introduction-to-the-pom.html
    [4]Maven主要插件的列表. http://maven.apache.org/plugins
    [5]Maven基本使用指南. http://maven.apache.org/guides/index.html
    [6]Better Build with Maven. http://www.mergere.com/m2book_download.jsp -- 强烈推荐
    [7]介绍Maven2. http://www.javaworld.com/javaworld/jw-12-2005 /jw-1205-maven_p.html
    [8]揭秘Maven2 POM. http://www.javaworld.com/javaworld/jw-05-2006/jw-0529-maven.html
    [9]Maven让事情变得简单. http://www-128.ibm.com/developerworks/cn/java/j-maven
    [10]Maven文档集. http://docs.codehaus.org/display/MAVENUSER/Home
    [11]有效利用Maven2的站点生成功能. http://www.matrix.org.cn/resource/article/44/44491_Maven2.html
    文中例子程序下载:http://www.blogjava.net/files/jiangshachina/maven.rar

 

抱歉!评论已关闭.