zoukankan      html  css  js  c++  java
  • 创建您自己的Maven模板

    相关链接:

    一、事实上Maven的模板也是一个maven项目,所以我们首先要生成一个生成模板的模板项目

    1.   随便找一个现成的maven项目
         假设没有运行:mvn archetype:create -DartifactId=archetype-template-generator  -DgroupId=test生成一个
    2.   进入1.中的maven项目
         运行:mvn archetype:create-from-project
         好了,target/generated-sources/archetype就是我们要的项目了,把这个目录总体拷贝出来(当然不拷贝也能够。个人还是习惯独立出来)
         那么这个project是怎么创建模板的呢。接着看
    3.   首先我们改动下这个project的信息。便于我们安装之后使用
         打开archetype/pom.xml
         <groupId>test</groupId>
         <artifactId>archetype-template-generator-archetype</artifactId>
         <version>1.0-SNAPSHOT</version>
         改动这三项
         然后运行:mvn -Dmaven.test.skip=true clean install
         (当然,高级定制功能我们以下再说。先走一遍最简单的流程)
         假设没有错误,那么如今我们的模板已经安装到本机maven仓库了。接着我们来试着使用这个模板创建一个maven项目
    4.   运行:mvn archetype:generate -DarchetypeCatalog=local
         不出意外,我们能够看到3.中安装的模板(假设看不到,请运行:mvn archetype:update-local-catalog进行更新,本地archetype存放在:${user.home}/.m2/archetype-catalog.xml中),选择1
         提示输入目标项目的信息。这里我们依据实际情况输入參数。然后确认Y。这么就依据我们自己的模板创建了一个maven项目。这里的archetypeproject我们能够复用

    參考链接

    二、这一部分我们来定制刚才生成的archetype项目,满足我们生成自己定义结果的项目的需求

    1.   定制哪些文件会被作为模板
         仅仅要我们把文件放到srcmain esourcesarchetype-resources文件夹以下,而且在srcmain esourcesMETA-INFmavenarchetype-metadata.xml中进行配置
         比方:我们加入srcmain esourcesarchetype-resources.gitignore,然后在archetype-metadata.xml中加入以下内容:
         <fileSets>
              <fileSet encoding="UTF-8" filtered="true">
                   <directory></directory>
                   <includes>
                        <include>.gitignore</include>
                   </includes>
              </fileSet>
         </fileSets>
         又一次mvn -Dmaven.test.skip=true clean install 再次生成项目,就会在新项目中增加.gitignore文件
         其它类似配置,我就不具体解释了
    2.   属性替换
         能够在上面的.gitignore增加${pro-to-replace}内容
         而且在archetype-metadata.xml中加入内容:
         <requiredProperties>
              <requiredProperty key="pro-to-replace"/>
         </requiredProperties>
         我们想这个占位符在实际使用的时候进行替换。这时archetype-metadata.xml中filtered="true"必须配置
         这样假设在生成的向导里会提示我们输入pro-to-replace,当然我们也能够在生成的命令行中用-Dpro-to-replace=XXX进行这是,假设设置了,不会提示我们输入指
         我们也能够像这样设置默认值:
         <requiredProperty key="pro-to-replace">
                   <defaultValue>pro-to-replace</defaultValue>
         </requiredProperty>
         当然假设这样。就不会提示你输入属性值,假设不想使用属性值。仅仅有通过-Dpro-to-replace=XXX进行更改

         
         这么一来,又一次安装,然运行创建的时候设置属性:mvn archetype:generate -DarchetypeCatalog=local -Dpro-to-replace=pro_value
         生成project的.gitignore中的${pro-to-replace}就会被替换为pro_value

         注意:这里的属性名称不能包括.
              比方:pro.to.replace是不行的




         

         

    版权声明:本文博客原创文章。博客,未经同意,不得转载。

  • 相关阅读:
    217。数据中是否有重复元素(哈希表/set简法)
    悟空、悟能、悟净的理解
    Scala中Self Types实战详解之Scala学习笔记-46
    Scala中Infix Type实战详解之Scala学习笔记-45
    Scala中复合类型实战详解之Scala学习笔记-44
    Scala中结构类型实战详解之Scala学习笔记-43
    Scala中路径依赖代码实战详解之Scala学习笔记-42
    Scala中链式调用风格的实现代码实战及其在Spark编程中的广泛运用之Scala学习笔记-41
    Scala中Variance代码实战及其在Spark中的应用源码解析之Scala学习笔记-40
    Scala类型约束代码实战及其在Spark中的应用源码解析之Scala学习笔记-39
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/4639191.html
Copyright © 2011-2022 走看看