Chinaunix首页 | 论坛 | 博客
  • 博客访问: 620035
  • 博文数量: 69
  • 博客积分: 1891
  • 博客等级: 上尉
  • 技术积分: 1359
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-20 23:38
文章分类

全部博文(69)

文章存档

2012年(46)

2011年(23)

分类: 系统运维

2011-07-14 23:11:10

开始一个新的Maven项目,在命令行使用Maven Archetype插件。
  1. $ mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch03 \
  2. -DartifactId=simple \
  3. -DpackageName=org.sonatype.mavenbook
  4. [INFO] Scanning for projects...
  5. [INFO] Searching repository for plugin with prefix: 'archetype'.
  6. [INFO] artifact org.apache.maven.plugins:maven-archetype-plugin: checking for \
  7. updates from central
  8. [INFO] -----------------------------------------------------------------------
  9. [INFO] Building Maven Default Project
  10. 一个简单的Maven项目
  11. 21
  12. [INFO] task-segment: [archetype:create] (aggregator-style)
  13. [INFO] --------------------------------------------------------------------
  14. [INFO] [archetype:create]
  15. [INFO] artifact org.apache.maven.archetypes:maven-archetype-quickstart: \
  16. checking for updates from central
  17. [INFO] Parameter: groupId, Value: org.sonatype.mavenbook.ch03
  18. [INFO] Parameter: packageName, Value: org.sonatype.mavenbook
  19. [INFO] Parameter: basedir, Value: /Users/tobrien/svnw/sonatype/examples
  20. [INFO] Parameter: package, Value: org.sonatype.mavenbook
  21. [INFO] Parameter: version, Value: 1.0-SNAPSHOT
  22. [INFO] Parameter: artifactId, Value: simple
  23. [INFO] * End of debug info from resources from generated POM *
  24. [INFO] Archetype created in dir: /Users/tobrien/svnw/sonatype/examples/simple
mvn 是Maven2的命令。archetype:create称为一个Maven目标 (goal)。如果你熟悉
Apache Ant,一个Maven目标类似于一个Ant目标 (target);它们都描述了将会在构建
中完成的工作单元 (unit of work)。而像-Dname=value这样的对是将会被传到目标中
的参数,它们使用-D属性这样的形式1,类似于你通过命令行向Java虚拟机传递系统属
性。archetype:create这个目标的目的通过archetype快速创建一个项目。在这里,一个
archetype被定义为“一个原始的模型或者类型,在它之后其它类似的东西与之匹配;
一个原型(prototype)”。Maven有许多可用的archetype,从生成一个简单的Swing应
用,到一个复杂的Web应用。本章我们用最基本的archetype来创建一个入门项目的骨
架。这个插件的前缀是“archetype”,目标为”create”。
我们已经生成了一个项目,看一下Maven在simple目录下创建的目录结构:
  1. simple/
  2. simple/pom.xml·
  3. /src/
  4. /src/main/
  5. /main/java
  6. /src/test/
  7. /test/java
这个生成的目录遵循Maven标准目录布局,我们之后会去看更多的细节,但是,现在让
我们只是尝试了解这些基本的目录。
¶ Maven Archtype插件创建了一个与artifactId匹配的目录——simple。这是项目的
基础目录。
· 每个项目在文件pom.xml里有它的项目对象模型 (POM)。这个文件描述了这个项
目,配置了插件,声明了依赖。
我们项目的源码了资源文件被放在了src/main目录下面。在我们简单Java项目这
样的情况下,这个目录包含了一下java类和一些配置文件。在其它的项目中,它
可能是web应用的文档根目录,或者还放一些应用服务器的配置文件。在一个Java
项目中,Java类放在src/main/java下面,而classpath资源文件放在src/main/
resources下面。
¹ 我们项目的测试用例放在src/test下。在这个目录下面,src/test/java存放像
使用JUnit或者TestNG这样的Java测试类。目录src/test/resources下存放测试
classpath资源文件。
Maven Archtype插件生成了一个简单的类org.sonatype.mavenbook.App,它是一个仅有
13行代码的Java,所做的只是在main方法中输出一行消息:
  1. package org.sonatype.mavenbook;
  2. /**
  3. * Hello world!
  4. *
  5. */
  6. public class App
  7. {
  8. public static void main( String[] args )
  9. {
  10. System.out.println( "Hello World!" );
  11. }

最简单的Maven archetype生成最简单的Maven项目:一个往标准输出打印“Hello
World”的程序。

想要构建打包这个应用,在包含pom.xml的目录
下运行mvn install

  1. $ mvn install
  2. [INFO] Scanning for projects...
  3. [INFO] ----------------------------------------------------------------------------
  4. [INFO] Building simple
  5. [INFO] task-segment: [install]
  6. [INFO] ----------------------------------------------------------------------------
  7. [INFO] [resources:resources]
  8. [INFO] Using default encoding to copy filtered resources.
  9. [INFO] [compiler:compile]
  10. 一个简单的Maven项目
  11. 23
  12. [INFO] Compiling 1 source file to /simple/target/classes
  13. [INFO] [resources:testResources]
  14. [INFO] Using default encoding to copy filtered resources.
  15. [INFO] [compiler:testCompile]
  16. [INFO] Compiling 1 source file to /simple/target/test-classes
  17. [INFO] [surefire:test]
  18. [INFO] Surefire report directory: /simple/target/surefire-reports
  19. -------------------------------------------------------
  20. T E S T S
  21. -------------------------------------------------------
  22. Running org.sonatype.mavenbook.AppTest
  23. Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.105 sec
  24. Results :
  25. Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
  26. [INFO] [jar:jar]
  27. [INFO] Building jar: /simple/target/simple-1.0-SNAPSHOT.jar
  28. [INFO] [install:install]
  29. [INFO] Installing /simple/target/simple-1.0-SNAPSHOT.jar to \
  30. ~/.m2/repository/org/sonatype/mavenbook/ch03/simple/1.0-SNAPSHOT/ \
  31. simple-1.0-SNAPSHOT.jar
你已经创建了,编译了,测试了,打包了,并且安装了(installed)最简单的Maven项
目。在命令行运行它以向你自己验证这个程序能工作。
  1. $ java -cp target/simple-1.0-SNAPSHOT.jar org.sonatype.mavenbook.App
  2. Hello


阅读(6537) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~