18.1.2 使用Archetype的一般步骤

3.5节推荐用户在使用Archetype插件的时候输入完整的插件坐标,以防止Maven下载最新的不稳定快照版本。然而这种情况只是对于Maven 2用户存在,在Maven 3中,如果插件的版本未声明,Maven只会自动解析最新的发布版,因此用户不用担心引入快照版本带来的问题。以下是两条命令的对比:

Maven 3:mvn archetype:generate

Maven 2:mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-5:generate输入上述命令后,Archetype插件会输出一个Archetype列表供用户选择。例如:


Choose archetype:

1:internal->appfuse-basic-jsf(AppFuse archetype for creating a web applica-

tion with Hibernate,Spring and JSF)

2:internal->appfuse-basic-spring(AppFuse archetype for creating a web ap-

plication with Hibernate,Spring and Spring MVC)

3:internal->appfuse-basic-struts(AppFuse archetype for creating a web ap-

plication with Hibernate,Spring and Struts 2)

4:internal->appfuse-basic-tapestry(AppFuse archetype for creating a web ap-

plication with Hibernate,Spring and Tapestry 4)

5:internal->appfuse-core(AppFuse archetype for creating a jar application

with Hibernate and Spring and XFire)

6:internal->appfuse-modular-jsf(AppFuse archetype for creating a modular

application with Hibernate,Spring and JSF)

7:internal->appfuse-modular-spring(AppFuse archetype for creating a modu-

lar application with Hibernate,Spring and Spring MVC)

8:internal->appfuse-modular-struts(AppFuse archetype for creating a modu-

lar application with Hibernate,Spring and Struts 2)

9:internal->appfuse-modular-tapestry(AppFuse archetype for creating a modu-

lar application with Hibernate,Spring and Tapestry 4)

10:internal->makumba-archetype(Archetype for a simple Makumba application)

11:internal->maven-archetype-j2ee-simple(A simple J2EE Java application)

12:internal->maven-archetype-marmalade-mojo(A Maven plugin development

project using marmalade)

13:internal->maven-archetype-mojo(A Maven Java plugin development project)

14:internal->maven-archetype-portlet(A simple portlet application)

15:internal->maven-archetype-profiles()

16:internal->maven-archetype-quickstart()

……


这个列表来自于名为archetype-catalog.xml的文件,18.3节将对其进行深入解释。现在,用户需要选择自己想要使用的Archetype,然后输入其对应的编号。

由于Archetype只是一个模板,为了保持模板的通用性,它的很多重要内容都是可配置的。因此,在用户选择了一个Archetype之后,下一步就需要提供一些基本的参数。主要有:

groupId:想要创建项目的groupId。

artifactId:想要创建项目的artifactId。

version:想要创建项目的version。

package:想要创建项目的默认Java包名。

上述参数是Archetype插件内置的,也是最常用和最基本的。用户在自己编写Archetype的时候,还可以声明额外的配置参数。

根据Maven提示填写完配置参数之后,Archetype插件就能够生成项目的骨架了。