Apache Maven项目提供的Archetype插件详解
来源:互联网 发布:河北三金网络 编辑:程序博客网 时间:2024/06/06 20:03
Archetype插件是Apache Maven项目提供的一个工具类的通用插件。
Archetype插件可以基于已有的模板创建一个Maven项目,开发人员可以在此基础上进行扩展开发。在这里,项目模板就被称为archetype。
Archetype插件也可以基于已有的一个Maven项目创建模板。
Archetype插件的最新版本是2015.8发布的2.4。
1.Archetype插件提供的4个可以直接使用的goal
- archetype:create 已经过时不用了
- archetype:generate 这是Archetype插件最常用的功能,用以从模板创建一个Maven项目
- archetype:create-from-project 用以从一个Maven项目创建模板
- archetype:crawl 在一个指定的Maven库中查找可以的模板,并更新模板目录
1)通过关键字过滤模板
例如,对于mvn archetype:generate -Dfilter=org.apache:struts,命令表示从groupId包含"org.apache"、且artifactId包含"struts"的模板中选择。
2)选择指定类型的模板
Archetype插件为模板提供了分类如下:
- remote,远程Maven库中提供的模板。mvn archetype:generate默认使用该类模板
- local,本地Maven库中提供的模板。mvn archetype:generate默认使用该类模板,作为remote的补充。Maven初始为空,执行mvn install时会将当前项目加入local模板库
- internal,Apache Maven项目默认提供的模板。mvn archetype:generate -DarchetypeCatalog=internal使用该类模板
- file://...,给出本地计算机上的一个路径,在该路径下有一个archetype-catalog.xml文件(如果是其他文件名则必须给出),其中配置了模板
- http://...,给出网络上的一个路径,在该路径下有一个archetype-catalog.xml文件(如果是其他文件名则必须给出),其中配置了模板
例如,对于mvn archetype:generate -DarchetypeCatalog=http://cocoon.apache.org,命令默认从http://cocoon.apache.org/archetype-catalog.xml中选择可以模板。
3.Archetype插件中的其他goal
此外,Archetype插件还为其maven-archetype打包配置提供了3个goal,这3个goal可以绑定到Maven内置的生命周期阶段,在执行对应的生命周期阶段时连带执行:
- archetype:jar,绑定到package阶段,用于构建archetype jar artifact
- archetype:integration-test,绑定到integration-test阶段,用于执行archetype integration tests
- archetype:update-local-catalog,绑定到install阶段,用于更新local catalog
<build> <extensions> <extension> <groupId>org.apache.maven.archetype</groupId> <artifactId>archetype-packaging</artifactId> <version>2.4</version> </extension> </extensions> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-archetype-plugin</artifactId> <version>2.4</version> </plugin> </plugins> </pluginManagement> </build>
4.Archetype插件generate的基本用法
Archetype插件基于模板创建一个Maven项目的步骤如下:
- 选择所需的模板
一个插件中可以包含多个模板,每个模板都有唯一的名字。如果知道模板的准确名字可以在mvn命令中以archetypeArtifactId参数给出,否则根据mvn命令的提示进行选择。
- 配置模板的必要参数
参数其实就是配置生成的Maven项目的信息。一个Maven项目,至少应该包含如下信息,这些信息就是创建Maven项目时必须为模板提供的参数:
- groupId,类似于package
- artifactId,必须唯一
- version,默认值为1.0-SNAPSHOT
注意:Maven插件本身也包含如上信息,但是区别于Maven项目的信息。
- 执行以创建新Maven项目
Archetype插件创建Maven项目的基本用法是直接执行mvn archetype:generate,这是以交互的模式进行,mvn会提示用户选择模板(通过编号选择),输入选择的模板后,mvn会陆续提示输入必要的groupId和artifactId,versioin可以采用默认值1.0-SNAPSHOT。
补充,Archetype插件2.4默认提供的internal类型的模板(共10个)如下图所示:
通过这些模板就足以创建满足常见基本需求的的Maven项目框架。
例如,mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp命令就可以创建一个Web应用。
参考文献:
http://maven.apache.org/archetype/maven-archetype-plugin/
- Apache Maven项目提供的Archetype插件详解
- Apache Maven项目提供的Archetype插件详解
- Apache Maven项目提供的Compiler插件详解
- Apache Maven项目提供的Ant插件详解
- Apache Maven项目提供的AntRun插件详解
- Apache Maven项目提供的EJB插件详解
- Apache Maven项目提供的JAR插件详解
- Apache Maven项目提供的WAR插件详解
- Apache Maven项目提供的EAR插件详解
- Apache Maven项目提供的Surefire插件详解
- Apache Maven项目提供的Dependency插件详解
- Apache Maven项目提供的Compiler插件详解
- Apache Maven项目提供的Ant插件详解
- Apache Maven项目提供的AntRun插件详解
- Apache Maven项目提供的EJB插件详解
- Apache Maven项目提供的JAR插件详解
- Apache Maven项目提供的WAR插件详解
- Apache Maven项目提供的EAR插件详解
- CentOS 7上安装Docker 1.8
- struts2简单入门示例
- XML解析方法总结(无代码)
- jsp中EL表达式的内的11个对象
- 优化TableViewCell高度计算的问题
- Apache Maven项目提供的Archetype插件详解
- KMP算法中改进的nextval数组
- linux进程的一生形象比喻
- 快速开平方根算法
- Java发送HTTP请求
- 【Android framework】am命令启动Activity流程
- 杨氏矩阵查找
- Parcelable encountered IOException writing serializable 问题解决
- linux文件安全与权限