创建原型指南

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

  • 原型描述符(目录中的archetype.xmlsrc/main/resources/META-INF/)。它列出了将包含在原型中的所有文件并对它们进行分类,以便原型生成机制可以正确处理它们。
  • 原型复制的原型文件(目录:src/main/resources/archetype-resources/
  • 原型pom ( pom.xml in: src/main/resources/archetype-resources )
  • 原型的 pom(原型根目录中的pom.xml )。

要创建原型,请执行以下步骤:

1.为archetype插件新建项目和pom.xml

原型插件的示例pom.xml如下所示:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>my.groupId</groupId>
  <artifactId>my-archetype-id</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>maven-plugin</packaging>
</project>

您只需要指定一个groupIdartifactIdversion。稍后将需要这三个参数来通过archetype:create 从命令行调用原型。

2. 创建原型描述符

原型描述符是一个名为archetype.xml的文件,它必须位于src/main/resources/META-INF/原型描述符的示例可以在快速入门原型中找到:

<archetype>
  <id>quickstart</id>
  <sources>
    <source>src/main/java/App.java</source>
  </sources>
  <testSources>
    <source>src/test/java/AppTest.java</source>
  </testSources>
</archetype>

< id>标签应该与原型pom.xml中的artifactId相同。

一个可选的<allowPartial>true</allowPartial>标签使得运行archetype:create甚至在现有项目上成为可能。

< sources><resources><testResources><siteResources>标记代表项目的不同部分:

  • <来源> = src/main/java
  • <资源> = src/main/resources
  • <testSources> = src/test/java
  • <testResources> = src/test/resources
  • <siteResources> = src/站点

<sources><testSources>可以包含指定源文件的<source>元素。

<testResources><siteResources>可以包含指定资源文件的<resource>元素。

将其他资源,如<resources>标记内的src/main/webapp目录中的资源。

此时只能指定要创建的单个文件,但不能指定空目录。

因此,上面显示的快速入门原型定义了以下目录结构:

archetype
|-- pom.xml
`-- src
    `-- main
        `-- resources
            |-- META-INF
            |   `-- archetype.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:create时,这两个变量都将从命令行初始化。

原型pom.xml的示例是:

<project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>${groupId}</groupId>
  <artifactId>${artifactId}</artifactId>
  <packaging>jar</packaging>
  <version>${version}</version>
  <name>A custom project</name>
  <url>http://www.myorganization.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

4. 安装并运行原型

现在您已准备好安装原型:

mvn install 

现在您已经创建了一个原型,您可以使用以下命令在本地系统上尝试它。在此命令中,您需要指定有关您要使用的原型的完整信息(它的groupId、它的artifactId、它的version)以及有关您要创建的新项目的信息(artifactIdgroupId)。不要忘记包含您的原型的版本(如果您不包含该版本,您的原型创建可能会失败并显示版本:RELEASE 未找到)

mvn archetype:create                                    \
  -DarchetypeGroupId=<archetype-groupId>                \
  -DarchetypeArtifactId=<archetype-artifactId>          \ 
  -DarchetypeVersion=<archetype-version>                \
  -DgroupId=<my.groupid>                                \
  -DartifactId=<my-artifactId>   

一旦您对原型的状态感到满意,您就可以将其部署(或将其提交给 ibiblio)作为任何其他工件,然后该原型将可供任何 Maven 用户使用。

开始创建原型的替代方法

无需手动创建原型所需的目录结构,只需使用

mvn archetype:create 
  -DgroupId=[your project's group id]
  -DartifactId=[your project's artifact id]
  -DarchetypeArtifactId=maven-archetype-archetype

之后,您现在可以自定义archetype-resources目录和archetype.xml的内容,然后继续执行步骤#4(安装并运行 archetype 插件)。