Maven 2 使用 Archetype 来创建初始项目

要创建能用 Maven 构建的简单 Java 项目所需的一切,可以使用 Archetype 插件,它是 Maven 2 中的标准插件。不同于构建阶段插件,Archetype 在 Maven 项目构建生命周期之外运行,用于创建 Maven 项目。在您想要包含 NumOps 项目的目录中执行下列命令(将所有命令敲在一行):

mvn archetype:create -DarchetypeGroupId=org.apache.maven.archetypes -DgroupId=com.ibm.devworks -DartifactId=NumOps

该命令为 Archetype 插件提供您模块的坐标:com.ibm.devworks/NumOps/1.0-SNAPSHOT。在此情况下,不需要指定版本,因为 Archetype 插件常默认为 1.0-SNAPSHOT。此命令为项目创建了一个起始的 pom.xml 文件,也创建了规范的 Maven 2 目录结构。

您将在本教程源代码下载处的 example1 目录下找到该代码(参见 下载)。

该输出应该与清单 7 类似:

[code][INFO] Scanning for projects…
[INFO] Searching repository for plugin with prefix: ‘archetype’.
[INFO] -------------------------------------------------------------------------

[INFO] Building Maven Default Project
[INFO] task-segment: [archetype:create] (aggregator-style)
[INFO] -------------------------------------------------------------------------

[INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus

[INFO] [archetype:create]
[INFO] Defaulting package to group ID: com.ibm.devworks
[INFO] -------------------------------------------------------------------------

[INFO] Using following parameters for creating Archetype: maven-archetype-quicks
tart:RELEASE
[INFO] -------------------------------------------------------------------------

[INFO] Parameter: groupId, Value: com.ibm.devworks
[INFO] Parameter: packageName, Value: com.ibm.devworks
[INFO] Parameter: basedir, Value: C:\temp\maven
[INFO] Parameter: package, Value: com.ibm.devworks
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] Parameter: artifactId, Value: NumOps
[INFO] ********************* End of debug info from resources from generated POM


[INFO] Archetype created in dir: C:\temp\maven\NumOps
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 second
[INFO] Finished at: Sat Dec 02 22:04:02 EST 2006
[INFO] Final Memory: 4M/8M
[INFO] ------------------------------------------------------------------------[/code]

Archetype 插件创建了一个目录树、一个 pom.xml 文件和一个占位符 App.java 应用程序文件。

它也为单元测试源码创建了一棵目录树,还创建了一个占位符 AppTest.java 单元测试文件。

这个项目已经准备就绪。图 6 显示了该 Archetype 插件创建的目录和文件。

您只需将 NumOps.java、Operation.java 和 AddOps.java 文件移到 App.java 的位置,并移除 App.java。

在下一部分中,将做出一些改变来定制生成的 pom.xm。