Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Maven Wiki" for change 
notification.

The following page has been changed by Iacob:
http://wiki.apache.org/maven/Chinese_Maven_In_Five_Minutes

------------------------------------------------------------------------------
- Maven五分钟入门
+ deleted
  
- 安装
- 
- Maven是一款Java工具,如果要进行下面的步骤必须安装Java。
- 
- 
首先下载Maven并且按照步骤将其安装,然後,在终端或命令提示符下输入:
- 
- {{{
- 
- mvn --version
- 
- }}}
- 
- 它会打印出所安装的Maven的版本,例如:
- 
- {{{
- 
- Maven version: 2.0.8
- Java version: 1.5.0_12
- OS name: "windows 2003" version: "5.2" arch: "x86" Family: "windows"
- 
- }}}
- 
- 
根据网络设置或许会需要一些其他的设置。如需要的话请参看
 Maven配置指南。
- 
- 建立一个工程
- 
- 在命令行上,运行如下的Maven目标(Goal):
- 
- {{{
- 
- mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app
- 
- }}}
- 
- 
如果Maven是全新安装的,第一次运行时会花费一些时间,因为Maven会下载最新的套件(插件包和其他文件)到本地,也有可能运行几次命令才能成功,因为远程服务器会在下载完毕前超时。不过,有许多方法来解决这个问题。
- 
- 
你可能注意到create目标(Goal)创建了一个与套件名(artifactId)同名的目录,现在切入这个目录。
- 
- cd my-app
- 
- 在这个目录下会看到一个 标准工程结构
- 
- {{{
- 
- my-app
- |-- pom.xml
- `-- src
-     |-- main
-     |   `-- java
-     |       `-- com
-     |           `-- mycompany
-     |               `-- app
-     |                   `-- App.java
-     `-- test
-         `-- java
-             `-- com
-                 `-- mycompany
-                     `-- app
-                         `-- AppTest.java
- 
- }}}
- 
- 
src/main/java目录下包含工程的源代码,src/test/java目录下包含测试代码,pom.xml是项目的项目对象模型(Project
 Object Model),或简称POM。
- 
- 项目对象模型(POM)
- 
- 
pom.xml是Maven工程的核心配置,这个文件包含了按照需要建立(build)工程时需要的大部分信息,POM文件非常庞大但可以简化,......
- 
- {{{
- 
- <project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
-   <modelVersion>4.0.0</modelVersion>
-   <groupId>com.mycompany.app</groupId>
-   <artifactId>my-app</artifactId>
-   <packaging>jar</packaging>
-   <version>1.0-SNAPSHOT</version>
-   <name>Maven Quick Start Archetype</name>
-   <url>http://maven.apache.org</url>
-   <dependencies>
-     <dependency>
-       <groupId>junit</groupId>
-       <artifactId>junit</artifactId>
-       <version>3.8.1</version>
-       <scope>test</scope>
-     </dependency>
-   </dependencies>
- </project>
- 
- }}}
- 
- 上面步骤做了什么?
- 
- 刚刚执行了Maven的目标(Goal)archetype:create, 
而且向这个目标传递了一些参数。前缀``archetype''是包含此目标的插件的名称。如果对Ant熟悉,你可以认为它和Ant中的"任务"(task)相似。这个目标创建了基于这个archetype的一个普通的工程。...。例如jboss-maven-plugin的作用是``处理一些jboss的事务''。
- 
- 编译这个工程
- 
- mvn package
- 
- 命令行会打印出许多动作,结尾部分如下:
- 
- {{{
- 
-  ...
- [INFO] 
------------------------------------------------------------------------
- [INFO] BUILD SUCCESSFUL
- [INFO] 
------------------------------------------------------------------------
- [INFO] Total time: 2 seconds
- [INFO] Finished at: Thu Oct 05 21:16:04 CDT 2006
- [INFO] Final Memory: 3M/6M
- [INFO] 
------------------------------------------------------------------------
- 
- }}}
- 
- 
和执行的第一个命令(archetype:create)不同,你可能注意到第二个命令只包含一个单词
 -- 
package。与目标(Goal)不同,这是一个``阶段''(phase)。阶段是建立过程的生命周期中的一个步骤,建立过程包含一系列的步骤。当给出一个阶段时,Maven会顺序执行每个阶段直到到达给出的那个。例如,如果我们执行编译(compile)阶段,实际被执行的阶段是:
- 
-    1. validate
-    2. generate-sources
-    3. process-sources
-    4. generate-resources
-    5. process-resources
-    6. compile
- 
- 可以使用下面的命令测试刚刚编译并且打包的JAR文件:
- 
- java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App
- 
- 它会立即给出:
- 
- Hello World!
- 
- 运行Maven工具
- 
- Maven包含的各个阶段
- 
- 
全部项目的列表会很长,这里列出的是需要执行的最常见的默认生命周期。
- 
-     * validate: 
检验工程是否正确,是否给出了所有必要的信息。
-     * compile: 编译工程的源代码
-     * test: 
使用合适的单元测试框架测试编译过的源代码。此处的测试步骤不需将编译得到的字节码打包和部署。
-     * package: 
将编译得到的字节码打包成可以用来将其发布(distribute)的格式,比如JAR。
-     * integration-test: 
如果需要将这个包放到特定环境中进行集成测试则处理并部署此包。
-     * verify:  运行检验程序确认这个包可用且满足合格条件。
-     * install: 
将此包安装到本地套件库,以便其他工程可以在本地通过依赖关系使用此包。
-     * deploy: 
发布到集成或发布环境,拷贝最终完成的包到远程套件库,以便和其他开发者或工程共享。
- 
- 还有两个Maven生命周期没有在上文列出,是:
- 
-     * clean: 清除被先前建立过程创建的套件。
- 
-     * site: 为这个工程建立网站文档。
- 
- 
阶段实际上是被映射到底层的目标上。每个阶段按照包的类型执行目标。例如,在工程的类型是JAR时执行jar:jar,执行war:war时的工程类型是
 - 你已经猜到了 - 是WAR。
- 
- 记住有趣的一点是阶段和目标会可以顺序执行。
- 
- {{{
- 
- mvn clean dependency:copy-dependencies package
- 
- }}}
- 
- 
这个命令会清理工程,拷贝依赖的内容,并且给这个工程打包(会执行所有的阶段直到到达package阶段)。
- 
- 生成站点
- 
- mvn site
- 
- 
这个阶段会基于工程的工程对象模型(POM)生成一个网站,在这个网站上可以查看到在目标或站点下生成的文档。
- 
- 结束语
- 
- 
我们希望这段简短的介绍能够使您对Maven的灵活性开始感兴趣,不过这是一篇十分简练的快速入门指南。现在您可以准备了解关於刚刚执行的那些动作的具体信息,请参看
 Maven入门指南。
- 
- © 2002-2008 The Apache Software Foundation
- 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to