• maven自定义archetype


    使用 Maven 时间长了,就会发现原生的一些 archetype 不太适合了,因为如果要新建一个 Spring 项目,你会在项目中加入大量的东西,比如加入依赖的包、写 JavaConfig 的 Spring 配置文件、写 log4j2 的配置文件等等。

    这时我们可以自定义 Maven 项目 archetype(叫原型或模板)。

    建立 Maven 项目原型非常简单,只需要一个 Maven 插件(maven-archetype-plugin)即可。

    1-建立Maven项目

    进行一些自定义的配置。我要建立一个 Spring 项目,所以加入了一些 Spring 的配置。

    如:

    • 配置 pom.xml 文件
    • 配置好 log4j2.xml 文件
    • 配置好 Spring 的 JavaConfig

    2-加入maven-archetype-plugin插件

    在 pom.xml 中加入插件。

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-archetype-plugin</artifactId>
        <version>3.1.2</version>
    </plugin>
    

    3-生成原型项目

    在项目目录(~/IdeaProjects/archetype/spring)下面执行 mvn archetype:create-from-project

    会看到这么一个结果:

    [INFO] Archetype project created in /Users/wu/IdeaProjects/archetype/spring/target/generated-sources/archetype
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  3.238 s
    [INFO] Finished at: 2019-11-27T10:25:38+08:00
    [INFO] ------------------------------------------------------------------------
    

    原型项目被创建到 /Users/wu/IdeaProjects/archetype/spring/target/generated-sources/archetype 目录下面了,随后进入该目录。

    [wu@mac] archetype-spring cd /Users/wu/IdeaProjects/archetype/spring/target/generated-sources/archetype
    [wu@mac] archetype pwd
    /Users/wu/IdeaProjects/archetype/spring/target/generated-sources/archetype
    [wu@mac] archetype ls
    pom.xml src     target
    

    4-安装原型项目

    在第三步进入目录后,在原型项目的目录下执行 mvn install 安装到本地。

    结果:

    [INFO] --- maven-install-plugin:3.0.0-M1:install (default-install) @ spring-archetype ---
    [INFO] Installing /Users/wu/IdeaProjects/archetype/spring/target/generated-sources/archetype/target/spring-archetype-1.0-SNAPSHOT.jar to /Users/wu/.m2/repository/com/snailwu/archetype/spring-archetype/1.0-SNAPSHOT/spring-archetype-1.0-SNAPSHOT.jar
    [INFO] Installing /Users/wu/IdeaProjects/archetype/spring/target/generated-sources/archetype/pom.xml to /Users/wu/.m2/repository/com/snailwu/archetype/spring-archetype/1.0-SNAPSHOT/spring-archetype-1.0-SNAPSHOT.pom
    [INFO] 
    [INFO] --- maven-archetype-plugin:3.1.2:update-local-catalog (default-update-local-catalog) @ spring-archetype ---
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  1.032 s
    [INFO] Finished at: 2019-11-27T10:40:09+08:00
    [INFO] ------------------------------------------------------------------------
    

    发现最后会执行 maven-archetype-plugin:3.1.2:update-local-catalog 插件,这是更新本地的 .m2/repository/archetype-catalog.xml 文件,查看文件中的内容会发现我们刚才生成的原型项目会显示在这里。如果没有的话执行 mvn archetype:crawl 命令就会扫描本地所有的原型项目,更新到 .m2/repository/archetype-catalog.xml 文件中。

    5-使用新的原型生成项目

    执行 mvn archetype:generate -DarchetypeCatalog=local 新建项目。

    然后选择项目原型:

    [INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom ---
    [INFO] Generating project in Interactive mode
    [INFO] No archetype defined. Using maven-archetype-quickstart (org.apache.maven.archetypes:maven-archetype-quickstart:1.0)
    Choose archetype:
    1: local -> org.apache.maven.archetypes:maven-archetype-webapp (webapp)
    2: local -> com.snailwu.archetype:spring-archetype (spring-archetype)
    Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): : 2
    

    第二个就是我们刚才生成的原型项目,输入 2 回车即可生成新的项目。

  • 相关阅读:
    E
    CSU 1757 火车进站 1757
    [Unity游戏开发]场景切换
    相机跟随
    [Unity游戏开发]Vector3类
    [Unity游戏开发] 关于向量计算的一些基础
    [Unity游戏开发] MonoBehaviour类常用方法(脚本生命周期)
    C#学习笔记之——new在哪些地方用
    C#——快速排序
    C#学习笔记之——事件(Event)
  • 原文地址:https://www.cnblogs.com/wuqinglong/p/11940502.html
Copyright © 2020-2023  润新知