美文网首页
Maven 项目模板创建指南

Maven 项目模板创建指南

作者: 翼徳 | 来源:发表于2016-07-28 15:16 被阅读1160次

    本文通过 Maven archetype 来创建自定义的项目结构,形成Maven 项目模板,避免重复的项目创建工作。


    Archetypes 创建指南

    创建一个 archetype 是一个非常简单的过程。 archetype 是一个简化版的 artifact,其中包含了你想要创建的项目的原型。 archetype 由以下部分组成:

    • archetype 描述器 (archetype.xml 路径 src/main/resources/META-INF/maven/)。它分类列举了要包含在 archetype 中的全部文件,确保archetype 生成机制正常运行。
    • 通过 archetype 插件要复制的原型文件(src/main/resources/archetype-resources/)
    • 原型 pom (pom.xml 路径 src/main/resources/archetype-resources)
    • Archetype 的 pom 文件(pom.xml 在 archetype 的根目录)。

    创建 archetype 要遵循下面的这些步骤:

    1. 为 archetype artifact 创建一个新项目和 pom.xml

    下面是一个 archetype artifact 的 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 http://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>jar</packaging>
    </project>
    

    你需要写的信息是 groupId, artifactIdversion。这三个参数将在稍后使用(在命令行通过 archetype:generate 调用 archetype 时使用)。

    2. 创建 archetype 描述器

    archetype 描述器 是一个叫 archetype.xml 的文件,必须在 src/main/resources/META-INF/maven/ 目录下。 下面是 archetype 描述器的示例:

    <archetype xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype/1.0.0 http://maven.apache.org/xsd/archetype-1.0.0.xsd">
     <id>quickstart</id>
     <sources>
     <source>src/main/java/App.java</source>
     </sources>
     <testSources>
     <source>src/test/java/AppTest.java</source>
     </testSources>
    </archetype>
    

    标签 <id> 必须和 archetype 的 pom.xml 中的 artifactId 一样。

    <allowPartial>true</allowPartial> 表示:可以在已存在的项目上运行 archetype:generate 命令。

    <sources>, <resources>, <testSources>, <testResources> 和<siteResources> 标签代表项目的不同部分:

    • <sources> = src/main/java
    • <resources> = src/main/resources
    • <testSources> = src/test/java
    • <testResources> = src/test/resources
    • <siteResources> = src/site

    <sources> 和<testSources> 可以包含 <source> 元素来指定一个源文件。

    <testResources> 和<siteResources> 包含 <resource>元素来指定一个资源文件。
    其他资源与 src/main/webapp 目录配置在 <resources> 标签中一样处理 。
    这里只能指定单个要创建的文件,不能是空目录。

    下面的目录结构展示了上面的定义:

    archetype
    |-- pom.xml
    `-- src
        `-- main
            `-- resources
                |-- META-INF
                |   `-- maven
                |       `--archetype.xml
                `-- archetype-resources
                    |-- pom.xml
                    `-- src
                        |-- main
                        |   `-- java
                        |       `-- App.java
                        `-- test
                            `-- java
                                `-- AppTest.java
    
    3. 创建原型文件和原型 pom.xml

    另一个 archetype 的组件是原型 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 http://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>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. 安装并运行 archetype 插件

    现在你可以安装 archetype:

    mvn install
    

    现在,你已经创建好了 archetype,你可以在你本地环境用下面的命令试试。这个命令中,你需要指定你要使用的 archetype 的全部信息(包括 groupId,artifactId,version)和你要新建项目的信息(artifactId,groupId)。别忘了包含你的 archetype 的版本(如果你没有包含版本,你的 archetype 可能会创建失败并显示一条消息:version:RELEASE 未发现)。

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

    如若好运执行到此,你就可以发布你的 archetype 到 Maven 上,以便更多的人可以使用这个 archetype。

    其他创建 Archetype 的方法

    用以下方式可以替代手工创建 archetype 的目录结构:

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

    之后,你可以自定义 archetype-resources 目录和 archetype.xml 的内容,然后执行第四步(安装 archetype 并运行 archetype 插件)


    官网原文地址:https://maven.apache.org/guides/mini/guide-creating-archetypes.html

    相关文章

      网友评论

          本文标题:Maven 项目模板创建指南

          本文链接:https://www.haomeiwen.com/subject/rjsijttx.html