Archetype数据库的介绍和使用
Archetype 创建项目的时候,如果没有指定具体的 Archetype 插件的坐标,maven-archetype-plugin 会提供一个 Archetype 列表选择。
在基于 M2Eclipse 插件的 MyEclipse 中创建项目的时候,也会可视化地显示所有的 Archetype 插件供选择。那这些列表 内容来源于哪里呢?这就涉及了 Archetype 数据库。
如下是一个简单的 archetype-catalog.xml 样例,包含了 webapp-jee5 和 webapp-javaee6 两个 Archetype。
maven-archetype-plugin 能读到的 archetype-catalog.xml 有如下几种。
如果执行 Maven 命令的话,可以在“mvn archetype:generate”后面使用 archetypeCatalog 参数,指定 maven-archetype-plugin 使用的 Catalog。例如:
这样就可以将任意地方的 Archetype(包括网络中的)都集中本地的一个 archetype-catalog.xml 描述,形成 Archetype 列表。
单击 MyEclipse 中的菜单,选择 Preferences 选项,展开左边的 Maven 选项,选中 Archetypes,如图 1 所示。
图 1 Maven 的 Archetypes 列表
单击 Add Local Catalog… 按钮,在如图 2 所示的界面中,选择要加入的本地 archetype-catalog.xml 文件和描述,就可以完成本地 Catalogs 的添加。
图 2 添加本地Archetype数据库
同样,单击 Add Remote Catalog… 按钮,在弹出的对话框中输入远程 archetype-catalogs.xml 的地址和描述,可以完成一个 Remote Catalog 的添加。
在基于 M2Eclipse 插件的 MyEclipse 中创建项目的时候,也会可视化地显示所有的 Archetype 插件供选择。那这些列表 内容来源于哪里呢?这就涉及了 Archetype 数据库。
Archetype 数据库简介
Archetype 数据库实际上就是 archetype-catalog.xml 文件,里面描述了对应 Archetype 插件的坐标。当使用 maven-archetype-plugin 创建 Maven 项目的时候,如果没有指定具体的插件坐标,maven-archetype-plugin 就会读取 archetype-catalog.xml 中的信息,形成列表供用户选择使用。如下是一个简单的 archetype-catalog.xml 样例,包含了 webapp-jee5 和 webapp-javaee6 两个 Archetype。
<?xml version="1.0" encoding="UTF-8"?> <archetype-catalog xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd" xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <archetypes> <archetype> <groupId>org.codehaus.mojo.archetypes</groupId> <artifactId>webapp-jee5</artifactId> <version>1.3</version> <repository> https://mvnrepository.com/artifact/org.codehaus.mojo.archetypes/webapp-jee5 </repository> </archetype> <archetype> <groupId>org.codehaus.mojo.archetypes</groupId> <artifactId>webapp-javaee6</artifactId> <version>1.3</version> <repository></repository> </archetype> </archetypes> </archetype-catalog>通过上面 archetype-catalog.xml 的了解,Archetype 也是通过坐标(groupId、artifactId、version)唯一定位的。另外,还有一个 repository 元素,指定查找 Archetype 的位置,默认是 Maven 的中央仓库。
maven-archetype-plugin 能读到的 archetype-catalog.xml 有如下几种。
1)Interal
maven-archetype-plugin 内置的 Archetype Catalog,有五六十个 Archetype。2)Local
用户本地的 Archetype Catalog,目录是:用户/.m2/archetype-catalog.xml。默认情况该文件不存在,可以在对应目录下添加。3)Remote
Maven 中央仓库的 Archetype Catalog,具体位置是 http://repo1.maven.org/maven2/archetype-catalog.xml。4)File
指定本地任何位置的 archetype-catalog.xml。5)HTTP
使用 HTTP 协议,指定网络中的远程 archetype-catalog.xml。如果执行 Maven 命令的话,可以在“mvn archetype:generate”后面使用 archetypeCatalog 参数,指定 maven-archetype-plugin 使用的 Catalog。例如:
Mvn archetype:generate -DarchetypeCatalog=file://c:/work/temp/archetype-catalog.xml
在执行“mvn archetype:generate”时,可以使用 archetypeCatalog 参数指定多个 XML 文件,中间用逗号隔开。同时,maven 的 archetypeCatalog 的默认值是“remote,local”。使用本地 Archetype 数据库
用户不仅可以基于 maven-archetype-plugin 使用在 archetype-catalog.xml 中描述的插件,也可以使用 maven-archetype-plugin 中的 crawl 目标搜索指定仓库中的 Archetype,生成 archetype-catalog.xml。比如:
Mvn archetype:crawl -Drepository=e:/test/repository
-Dcatalog=e:/temp/archtype-catalog.xml
这样就可以将任意地方的 Archetype(包括网络中的)都集中本地的一个 archetype-catalog.xml 描述,形成 Archetype 列表。
在 M2Eclipse 中配置 Archetype Catalogs
基于项目开发的实际需要,用户可以在 M2Eclipse 开发工具中配置 Archetype Catalogs。下面介绍安装好了 M2Eclipse 的 MyEclipse 中的操作方式。单击 MyEclipse 中的菜单,选择 Preferences 选项,展开左边的 Maven 选项,选中 Archetypes,如图 1 所示。
图 1 Maven 的 Archetypes 列表
单击 Add Local Catalog… 按钮,在如图 2 所示的界面中,选择要加入的本地 archetype-catalog.xml 文件和描述,就可以完成本地 Catalogs 的添加。
图 2 添加本地Archetype数据库
同样,单击 Add Remote Catalog… 按钮,在弹出的对话框中输入远程 archetype-catalogs.xml 的地址和描述,可以完成一个 Remote Catalog 的添加。
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算