• 自定义项目脚手架- Maven Archetypes


    在上篇Intellij修改archetype Plugin配置 中我们已经简单介绍了关于archetype的作用。

    简单来说maven archetype插件就是创建项目的脚手架,你可以通过命令行或者IDE集成简化项目创建的工作。例如:

    • org.apache.maven.archetypes:maven-archetype-quickstart
    • org.apache.maven.archetypes:maven-archetype-site
    • org.apache.maven.archetypes:maven-archetype-webapp
    • 以及spring或者第三方提供了一些archetype plugin。

    同时maven archetype插件也是一个简单的maven artifact,它包含了创建项目所需要的所有资源。 主要分为几类原型信息:

    • archetype描述文件(src/main/resources/META-INF/maven/archetype.xml),这为archetype 1.0, 包含所有创建项目的文件信息和路径信息。在(archetype 2.0)[http://maven.apache.org/archetype/maven-archetype-plugin/]增加了更灵活的archetype-metadata.xml(src/main/resources/META-INF/maven/下), archetype元数据信息,并且完全支持1.0.
    • 项目的原型文件(src/main/resources/archetype-resources/之下),将会被archetype插件 copy到项目目录结构去。
    • 创建项目的pom文件(src/main/resources/archetype-resources下)
    • archetype pom文件,在archetype项目根目录下。

    创建archetype插件

    1. 首先在archetype中加入一个pom文件,如下:

      <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>com.github.greengerong</groupId>
            <artifactId>component</artifactId>
            <version>0.0.1-SNAPSHOT</version>
            <packaging>jar</packaging>
      
            <name>component</name>
            <url>http://maven.apache.org</url>
      
            <properties>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            </properties>
      
            <dependencies>
            </dependencies>
      </project>
    2. 创建archetype-metadata.xml,位于src/main/resources/META-INF/maven/目录下,例如:

      <?xml version="1.0" encoding="UTF-8"?>
      <archetype-descriptor name="app-server">
          <fileSets>
              <fileSet filtered="true" encoding="UTF-8">
                  <directory>src/main/java</directory>
                  <includes>
                      <include>**/*.**</include>
                  </includes>
              </fileSet>
              <fileSet filtered="true" encoding="UTF-8">
                  <directory>src/test/java</directory>
                  <includes>
                      <include>**/*.**</include>
                  </includes>
              </fileSet>
          </fileSets>
      </archetype-descriptor>

    更多配置信息参考archetype-descriptor.

    1. 为将创建的项目增加pom.xml文件,以${artifactId} / ${groupId} 变量作为占位符,例如:

      <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>${artifactId}</name>
      
            <properties>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            </properties>
      
            <dependencies>
                <dependency>
                    <groupId>junit</groupId>
                    <artifactId>junit</artifactId>
                    <version>4.11</version>
                    <scope>test</scope>
                </dependency>
            </dependencies>
      
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <artifactId>maven-compiler-plugin</artifactId>
                            <configuration>
                                <source>1.6</source>
                                <target>1.6</target>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </project>
    2. 接下来在archetype项目下install plugin:mvn clean install.

    3. 利用已有acrchetype plugin创建项目:

      命令行:

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

              Intellij选择增加archetype plugin:

    /images/blog_img/Intellij-archetype-plugin.png

         对于删除intellij 测试 archetype信息,请参见Intellij修改archetype Plugin配置.

    注意:

    • 如果你也需要文件或者目录名字以artifactId生成,则需要用特殊变量__artifactId__(双下划线)作为占位符。

         本文demo,请移到到github maven-archetypes-demo.

  • 相关阅读:
    分块
    BZOJ 2957 楼房重建-线段树
    [NOI2016]区间-线段树
    [ZJOI2007]矩阵游戏-二分图匹配
    BZOJ3714 [PA2014]Kuglarz -最小生成树
    HNOI2005狡猾的商人-差分约束系统
    Android开发之带你轻松集成友盟统计
    Android6.0动态申请权限
    Android6.0动态权限申请
    极光推送JPush的快速集成
  • 原文地址:https://www.cnblogs.com/whitewolf/p/3606034.html
Copyright © 2020-2023  润新知