《Maven官方文档》什么是原型(Archrtype)?

什么是原型?

简单来说,原型(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

请参考  Archetype Plugin page.

译者注: 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

转载自 并发编程网 - ifeve.com

时间: 2024-09-20 00:02:55

《Maven官方文档》什么是原型(Archrtype)?的相关文章

《maven官方文档》5分钟开始Maven

前提 你必须明白如何在电脑上安装软件.如果你不知道如何做,请向你学校.办公室里等的人请教下,或者付费给他人让他们解释给你.Maven邮件组不是寻求这个建议的最好地方. 安装 Maven是个Java工具,所以你必须安装了Java才能继续.首先,下载Maven,然后按照安装指南.完成后,在终端或命令行中键入如下指令: mvn --version 应该会打印已安装Maven的版本.例如: Apache Maven 3.0.5 (r01de14724cdef164cd33c7c8c2fe155faf96

《Maven官方文档》POM文件(二)

工程继承 POM中可配置的元素如下: 依赖 (dependencies) 开发者和贡献者 (developers and contributors) 插件列表,包括报告 (plugin lists, including reports) 相应id的插件执行 (plugin executions with matching ids) 插件配置 (plugin configuration) 资源 (resources) Super POM就是一个工程继承的例子.你也可以通过在POM中指定parent

《Maven官方文档》创建Archetype

创建archetype是一个非常简单的过程.archetype就是一个非常简单的构件,它包含了你想创建的工程的模型.archetype由这些东西组成: 一个archetype描述符(archetype descriptor)(src/main/resources/META-INF/maven目录下的archetype.xml).这个文件列出了包含在archetype中的所有文件并将这些文件分类,因此archetype生成机制才能正确的处理. 原型文件(prototype files),arche

《Maven官方文档》创建Archetype 原文链接

创建archetype是一个非常简单的过程.archetype就是一个非常简单的构件,它包含了你想创建的工程的模型.archetype由这些东西组成: 一个archetype描述符(archetype descriptor)(src/main/resources/META-INF/maven目录下的archetype.xml).这个文件列出了包含在archetype中的所有文件并将这些文件分类,因此archetype生成机制才能正确的处理. 原型文件(prototype files),arche

《Maven官方文档》插件的发展

来讲解一下Maven 2.0 插件的发展       maven中有一个核心引擎,它提供了基础项目的处理能力和构建能力的管理,还有很多用于构建任务的插件. 那到底什么是插件呢? Maven 核心框架就是一个插件的集合.换而言之,这些插件就是行为的执行者,插件可以用于:创建jar文件,war文件,编译代码,单元测试,创建项目文档等等.几乎任何的行为,你都可以认为是这个项目在执行对应的Maven插件. 插件是Maven的核心特性并可以给多个项目重复使用.插件执行的这些行为包含在一个项目描述--项目对

《Maven官方文档》POM文件(一)

什么是POM? POM(project object model)包含了工程信息和工程的配置细节,Maven使用POM文件来构建工程.POM文件包含了工程中的大部分默认值.举个例子,target是默认的构建目录,src/main/java是默认的源码目录,src/test/java是默认的测试源码目录,等等. Maven2中的pom.xml就是Maven1中的project.xml.相比于在maven.xml中包含可执行的goal,现在goals和plugins都可以在pom.xml中配置.当执

《Maven官方文档》-Maven依赖机制简介(一)

依赖机制是Maven最为用户熟知的特性之一,同时也是Maven所擅长的领域之一.单个项目的依赖管理并不难, 但是当你面对包含数百个模块的多模块项目和应用时,Maven能帮你保证项目的高度控制力和稳定性. 大纲:  传递性依赖 排除.可选依赖 依赖范围 依赖管理 导入依赖 系统依赖 传递性依赖 传递性依赖是Maven2.0的新特性.假设你的项目依赖于一个库,而这个库又依赖于其他库.你不必自己去找出所有这些依赖,你只需要加上你直接依赖的库,Maven会隐式的把这些库间接依赖的库也加入到你的项目中.这

《Maven官方文档》-Maven依赖机制简介(二)

项目B: <project> <modelVersion>4.0.0</modelVersion> <groupId>maven</groupId> <artifactId>B</artifactId> <packaging>pom</packaging> <name>B</name> <version>1.0</version> <depend

Apache Storm 官方文档中文版

原文链接    译者:魏勇 About 本项目是 Apache Storm 官方文档的中文翻译版,致力于为有实时流计算项目需求和对 Apache Storm 感兴趣的同学提供有价值的中文资料,希望能够对大家的工作和学习有所帮助. 虽然 Storm 的正式推出已经有好几个年头了,发行版也已经到了 0.10.x,但是目前网络上靠谱的学习资料仍然不多,很多比较有价值的资料都过时了(甚至官方网站自己的资料都没有及时更新,这大概也是发展太快的社区的通病),而较新的资料大多比较零碎,在关键内容的描述上也有些