创建原型指南

创建原型是一个非常简单的过程。原型是一个非常简单的工件,它包含您希望创建的项目原型。原型由以下部分组成:

  • 原型描述符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,artifactIdversion。稍后将需要这三个参数来通过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和标签代表项目的不同部分fileSetsmodules

  • <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都可以,只是不要忘记设置artifactIdgroupId作为变量(${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)以及有关您要创建的新项目的信息(artifactIdgroupId)。不要忘记包含您的原型的版本(如果您不包含该版本,您的原型创建可能会失败并显示版本: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(安装原型并运行原型插件)。