Archetype介绍
- Archetype 是一个 Maven 项目模板工具包。原型被定义为原始模式或模型,从中创建所有其他相同类型的东西。这些名称适合我们尝试提供一个系统,该系统提供生成Maven项目的一致方法。Archetype 将帮助作者为用户创建 Maven 项目模板,并为用户提供生成这些项目模板的参数化版本的方法。-- 摘自官网
Archetype创建
- 使用工具创建一个maven项目
- 导入pom文件
<properties>
<jdk.version>1.8</jdk.version>
<maven.archetype.version>3.0.1</maven.archetype.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>${maven.archetype.version}</version>
</dependency>
</dependencies>
- 生成archetype
- 打开cmd窗口,在刚才的maven项目的根目录中运行maven命令:
mvn archetype:create-from-project
-
项目的目录结构变为
-
修改archetype-metadata.xml、pom.xml
- archetype-metadata.xml配置文件告诉archetype插件,archetype-resources里面哪些文件需要包含到创建出的项目里
<?xml version="1.0" encoding="UTF-8"?> <archetype-descriptor xsi:schemaLocation="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 http://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd" name="first_archetype" xmlns="https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <fileSets> <fileSet filtered="true" packaged="true" encoding="UTF-8"> <directory>src/main/java</directory> <includes> <include>**/*.java</include> </includes> </fileSet> <fileSet filtered="true" packaged="true" encoding="UTF-8"> <directory>src/test/java</directory> <includes> <include>**/*.java</include> </includes> </fileSet> <fileSet filtered="true" encoding="UTF-8"> <directory>.idea</directory> <includes> <include>**/*.xml</include> </includes> </fileSet> <fileSet encoding="UTF-8"> <directory>.idea</directory> <includes> <include>**/*.gitignore</include> </includes> </fileSet> <fileSet encoding="UTF-8"> <directory></directory> <includes> <include>first_archetype.iml</include> </includes> </fileSet> </fileSets> </archetype-descriptor>
-
将骨架部署到本地maven仓库
generated-sourced/archetype目录下运行maven命令:mvn clean install -
创建项目,增加新建的archetype,使用全新的进行创建,然后在archetype中输入之前创建好的archetype的坐标,进行创建
更新操作
- 如果需要进行更新,重新执行创建之后3,4,5,6的操作即可
效果
注意点
- 如果文件夹中不存在文件的话,将不会将空文件夹导入到archetype中,可以声明一些默认的空包来解决这个问题
- 如果过程中,报/.m/settings.xml不存在,将使用的maven中的setttings.xml文件复制到报错的文件夹地方即可解决此问题