创建原型指南
创建原型是一个非常简单的过程。原型是一个非常简单的工件,它包含您希望创建的项目原型。原型由以下部分组成:
- 原型描述符(
archetype-metadata.xml在目录中:)src/main/resources/META-INF/maven/。它列出了将包含在原型中的所有文件并对它们进行分类,以便原型生成机制可以正确处理它们。 - 原型插件复制的原型文件(目录
src/main/resources/archetype-resources/:) - 原型 pom (
pom.xmlin:src/main/resources/archetype-resources) - 原型的 pom(
pom.xml在原型的根目录中)。
要创建原型,请执行以下步骤:
1.为原型工件创建一个新项目和pom.xml
原型工件的示例pom.xml如下所示:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.groupId</groupId>
<artifactId>my-archetype-id</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>maven-archetype</packaging>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.archetype</groupId>
<artifactId>archetype-packaging</artifactId>
<version>3.1.1</version>
</extension>
</extensions>
</build>
</project>
您只需要指定一个groupId,artifactId和version。稍后将需要这三个参数来通过archetype:generate命令行调用原型。
2. 创建原型描述符
原型描述符是一个被调用的文件,archetype-metadata.xml它必须位于src/main/resources/META-INF/maven/目录中。可以在快速入门原型中找到原型描述符的示例:
<archetype-descriptor
xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 https://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd"
name="quickstart">
<fileSets>
<fileSet filtered="true" packaged="true">
<directory>src/main/java</directory>
</fileSet>
<fileSet>
<directory>src/test/java</directory>
</fileSet>
</fileSets>
</archetype-descriptor>
属性name标记应与artifactId原型中的相同pom.xml。
布尔属性partial显示此原型是表示完整的 Maven 项目还是仅表示部分。
,requiredProperties和标签代表项目的不同部分fileSets:modules
<requiredProperties>:从该原型生成项目所需的属性列表<fileSets>: 文件集定义<modules>: 模块定义
此时只能指定要创建的单个文件,但不能指定空目录。
因此,上面显示的快速入门原型定义了以下目录结构:
archetype
|-- pom.xml
`-- src
`-- main
`-- resources
|-- META-INF
| `-- maven
| `--archetype-metadata.xml
`-- archetype-resources
|-- pom.xml
`-- src
|-- main
| `-- java
| `-- App.java
`-- test
`-- java
`-- AppTest.java
3.创建原型文件和原型pom.xml
要创建的原型的下一个组件是原型pom.xml。任何pom.xml都可以,只是不要忘记设置artifactId和groupId作为变量(${artifactId}/ ${groupId})。这两个变量都将在调用时从命令行初始化archetype:generate。
原型的示例pom.xml是:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>${groupId}</groupId>
<artifactId>${artifactId}</artifactId>
<version>${version}</version>
<packaging>jar</packaging>
<name>${artifactId}</name>
<url>http://www.myorganization.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
4.安装archetype并运行archetype插件
现在您已准备好安装原型:
mvn install
现在您已经创建了一个原型,您可以使用以下命令在本地系统上尝试它。在此命令中,您需要指定有关要使用的原型的完整信息(其groupId、其artifactId、其version)以及有关您要创建的新项目的信息(artifactId和groupId)。不要忘记包含您的原型的版本(如果您不包含该版本,您的原型创建可能会失败并显示版本:RELEASE 未找到)
mvn archetype:generate \ -DarchetypeGroupId=<archetype-groupId> \ -DarchetypeArtifactId=<archetype-artifactId> \ -DarchetypeVersion=<archetype-version> \ -DgroupId=<my.groupid> \ -DartifactId=<my-artifactId>
一旦您对原型的状态感到满意,您就可以将其部署(或将其提交到Maven Central)作为任何其他工件,然后该原型将可供任何 Maven 用户使用。
开始创建原型的替代方法
无需手动创建原型所需的目录结构,只需使用
mvn archetype:generate -DgroupId=[your project's group id] -DartifactId=[your project's artifact id] -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-archetype
之后,您现在可以自定义archetype-resources目录的内容archetype-metadata.xml,然后,继续执行步骤#4(安装原型并运行原型插件)。



