美文网首页
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