创建原型指南
创建原型是一个非常简单的过程。原型是一个非常简单的工件,它包含您希望创建的项目原型。原型由以下部分组成:
- 原型描述符(
archetype-metadata.xml
在目录中:)src/main/resources/META-INF/maven/
。它列出了将包含在原型中的所有文件并对它们进行分类,以便原型生成机制可以正确处理它们。 - 原型插件复制的原型文件(目录
src/main/resources/archetype-resources/
:) - 原型 pom (
pom.xml
in: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(安装原型并运行原型插件)。