189 8069 5689

自定义MavenArchetype之archetype:create-from-project

前面讲过通过Maven原型maven-archetype-archetype来创建自定义Archetype的方法,但是这种方法似乎不太方便验证文件的正确性,这里将使用maven-archetype-plugin插件的create-from-project目标来从一个project中创建archetype

10年积累的网站设计制作、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有松岭免费网站建设让你可以放心的选择与我们合作。

1,创建用于创建archetype的project

mvn archetype:generate -DgroupId=com.ultrapower.archetypes -DartifactId=ultra-template-archetype -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=1.0 -DinteractiveMode=false

自定义Maven Archetype之 archetype:create-from-project

其中关于添加相关的依赖等这里忽略

2,打开cmd,在project的根目录执行以下命令

mvn archetype:create-from-project

通过该命令,会在target目录下面生成generated-sources/archetype目录,这个就是生成的 archetype。 (同时,generated-sources\archetype\src\main\resources\META-INF\maven下的文件archetype-metadata.xml可能需要调整)
自定义Maven Archetype之 archetype:create-from-project

先来看看archetype下的pom.xml都包含些什么内容



  4.0.0

  com.ultrapower.archetypes
  ultra-template-archetype-archetype
  1.0
  maven-archetype

  ultra-template-archetype-archetype

  
    
      
        org.apache.maven.archetype
        archetype-packaging
        3.0.1
      
    

    
      
        
          maven-archetype-plugin
          3.0.1
        
      
    
  

  Parent pom providing dependency and plugin management for applications
        built with Maven

  http://maven.apache.org

  
    
      Pivotal
      info@pivotal.io
      Pivotal Software, Inc.
      http://www.spring.io
    
  

  
    
      Apache License, Version 2.0
      http://www.apache.org/licenses/LICENSE-2.0
    
  

  
    https://github.com/spring-projects/spring-boot/spring-boot-starter-parent/ultra-template-archetype
  

我们再打开archetype-metadata.xml文件看看里面的内容,并做可能的必要修改【可能默认包含了些你不需要的文件】



  
    
      src/main/java
      
        **/*.java
        **/*.xml
      
    
    
      src/main/resources
      
        **/*.xml
        **/*.html
      
    
    
      src/main/resources
      
        **/*.yml
      
    
    
      src/test/java
      
        **/*.java
      
    
    
      lib
      
        **/*.jar
      
    
    
      boot
      
        **/*.bat
        **/*.sh
      
    
    
      .settings
      
        **/*.prefs
      
    
    
      
      
        .classpath
        .project
      
    
  

将最后的两项去掉即可满足需要了


      .settings
      
        **/*.prefs
      
    
    
      
      
        .classpath
        .project
      
    

在此简单说下几个属性的含义(完整的说明参考官网archetype-metadata.xml详解)
1)filtered :被选择的文件是否当做 Velocity 模板来使用(如果是true则可以使用Velocity的表达式,例如用于动态设置包名等)
2)packaged:被拷贝或生成(通过Velocity生成)的文件是否在package属性预先设置的目录结构下进行存放
3)encoding:设置文件的字符编码

3,cd进入generated-sourced/archetype目录并执行以下命令

mvn install

通过以上操作便会将自定义的archetype安装到maven仓库中,同时会在仓库根目录下的archetype-catalog.xml文件中添加自定义archetype的信息(没有会自动创建该文件)

4,使用自定义的archetype创建project

mvn archetype:generate  -DarchetypeGroupId=com.ultrapower.archetypes  -DarchetypeArtifactId=ultra-template-archetype-archetype  -DarchetypeVersion=1.0 -DgroupId=com.ultrapower.ioss -DartifactId=ultra-template-archetype-test -X

至此,一个新的project便生成
自定义Maven Archetype之 archetype:create-from-project


重要:对于某些java和文本文件里面的配置可能需要动态修改,所以需要手动的调整archetype下的文件,在此不再赘述

在安装完成后,在本地仓库的根路径下会生成一个文件“archetype-catalog.xml”,里面便记录了自定义骨架的坐标,例如:



  
    
      com.ultrapower.archetypes
      ultra-template-archetype-archetype
      1.0
      Parent pom providing dependency and plugin management for applications
        built with Maven
    
  

当前标题:自定义MavenArchetype之archetype:create-from-project
转载注明:http://cdxtjz.cn/article/pdpppj.html

其他资讯