美文网首页
Maven Archetype开发(二)

Maven Archetype开发(二)

作者: 随风摇摆水杉树 | 来源:发表于2020-06-28 22:34 被阅读0次

    Maven Archetype开发(一)中已经介绍了如何开发Archetype模板项目,虽然Archetype模板项目能帮助我们快速生成一个新的骨架项目,但是要开发一个貌似也不太方便。尤其是我们每次要删除模板java目录的基础包目录以及在java文件中用Archetype变量替换基础包名。如果模板java少还行,一旦多了就容易犯错,最终导致生成的骨架项目无法使用。
    幸运的是Maven Archetype插件已经为我们提供了一种更简洁的开发方式,下面我们就简单介绍下这种方式。

    一、流程图

    archetype-overview.png
    上面的流程图向我们展示了如何从一个普通项目转换成Archetype模板项目,然后再从该模板项目导出普通项目的过程。这里关注的重点就是archetype:create-from-project这个插件指令,它可以帮助我们将一个普通项目转换成Archetype模板项目。

    二、archetype:create-from-project

    如果没有其它要求,你完全可以在一个普通maven项目中输入以下指令,待执行完成后就可以在target目录中找到已经生成的Archetype模板项目。

    mvn archetype:create-from-project
    

    另外该命令可以附带很多额外的参数,用来配置生成的Archetype模板项目,具体可以参考官方参数说明,这里我们主要说明propertyFile这个参数。propertyFile表示从文件中导入配置参数,其可用参数如下:

    • package
      基础包名,也就是需要删除的java基础包目录以及java文件中需要替换成变量的基础包名,比如com.jianshu.service,package=com.jianshu,那么com.jianshu.service会被替换成${package}.service,同时相应的包目录被删除
    • archetype.languages
      处理src/main/,src/test/中的包目录,比如archetype.languages=groovy,那么src/main/groovy下的包目录会被处理,而src/main/java下的包目录不会处理
      可选:java, xml, txt, groovy, cs, mdo, aj, jsp, gsp, vm, html, xhtml, properties, .classpath, .project
    • groupId
      Archetype模板项目本身的groupId
    • artifactId
      Archetype模板项目本身的artifactId
    • version
      Archetype模板项目本身的version
    • excludePatterns
      需要排除的文件或者目录
    • archetype.filteredExtensions
      需要进行属性变量替换的文件的后缀,比如archetype.filteredExtensions=java,那么java文件的包名会被属性变量替换
      可选:java, groovy, csharp, aspectj
    • Custom Properties
      自定义属性变量

    archetype.properties文件参考内容如下:

    archetype.groupId=com.drw
    archetype.artifactId=archetype-create-from-properties
    archetype.version=1.0.0
    package=com.drw.archetype
    archetype.encoding=UTF-8
     
    #archetype.filteredExtensions=java
    #archetype.languages=java
    
    excludePatterns=.vs/,target/,.settings/,.project,.classpath,.factorypath
    #中文需要先转换成UNICODE码 ,否则会乱码
    #des=测试
    des=\u6d4b\u8bd5
    

    使用命令如下:

    mvn archetype:create-from-project -DpropertyFile=archetype.properties
    

    三、参考资源

    更多

    Maven Archetype开发(一)

    相关文章

      网友评论

          本文标题:Maven Archetype开发(二)

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