什么是原型?
简单来说,原型(Archetype)是一个Maven工程模板工具包。一个原型被定义为一个提供相同性质内容的原始样式或模型。这个名字适合当我们试图提供一个系统,这个系统提供了一个一致的方式生成Maven项目。原型将帮助作者为用户创建Maven工程模板,并且为用户提供方法去使用参数来调整生成的工程模板。
使用原型提供了一个很好的方式,使开发人员快速的符合你的项目或组织的最佳实践,在Maven项目中,我们提供了一个演示了Maven多种特性的示例工程,以此希望帮助我们的用户尽快的启动并运行,同时引导新用户使用Maven的最佳实践。几秒之内,新用户就可以使用Maven项目工作,并以此为跳板了解Maven的更多的特性。我们也试着去为原型加入可添加机制,通过这种方法允许工程的一部分被一个原型捕获,来使这一部分工程能够直接加入的另一个已经存在的工程。这方面一个比较好的例子是Maven site archetype。举个例子,如果你已经用quick start原型生成了一个工程,你同样能通过在已存在的工程中使用site archetype来快速的生成一个这个工程的站点。你可以用原型来做任何像这样的事情。
可能你想在你的组织中标准化J2EE开发,于是你想去提供EJBs或WARs的原型,或者为你的web服务提供原型。当这些原型创建并应用到你的组织的仓库里,它们就可以被你组织里的所有开发者使用了。
使用Archetype
基于Archetype来创建一个新工程,你只需要调用 mvn archetype:generate目标,就像这样:
mvn archetype:generate
译者注: mvn archetype:generate 命令会从远程拉取所有的原型(大约1575个)供你选择,使用-DarchetypeArtifavtId=[archetype]参数可以指定archetype类型。如果卡在Generating project in Interactive mode这一步,是因为maven在从远程拉取信息,使用 -DarchetypeCatalog=internal 参数让它不要从远程服务器上取catalog。
可供使用的Archetype
Maven提供了一些可用的Archetype:
Archetype ArtifactIds | Description |
---|---|
maven-archetype-archetype | 生成一个示例原型工程 |
maven-archetype-j2ee-simple | 生成一个简单的J2EE应用示例 |
maven-archetype-mojo | 生成Maven Plugin 例子的示例 |
maven-archetype-plugin | 生成Maven Plugin示例 |
maven-archetype-plugin-site | 生成Maven Plugin site示例 |
maven-archetype-portlet | 生成JSR-268组件示例 |
maven-archetype-quickstart | 生成Maven Quickstart工程示例 |
maven-archetype-simple | 生成一个简单的Maven工程 |
maven-archetype-site | 生成一个展示可支持的格式的文档的站点,例如 APT, XDoc, FML, 并且展示如何国际化你的站点。 |
maven-archetype-site-simple | 生成一个Maven site 示例 |
maven-archetype-webapp | 生成Maven Webapp工程示例 |
关于这些原型的更多信息,请参考 Maven Archetype Bundles page。
原型的构成
原型被打包成一个JAR,原型由描述原型内容的原型元数据(archetypr metadata)和一系列创建原始工程的Velocity模板组成。如果你想了解如何创建你自己的原型,请参考Guide to creating archetypes。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/115948.html