Maven Archetype Plugin

来源:互联网 发布:js 判断对象类型 兼容 编辑:程序博客网 时间:2024/05/18 09:36

发博词

经测试,Maven Archetype Plugin这个插件非常好使;用这个插件去处理一个符合Maven最佳实践的项目,会得到一个非常好的结果;

User Guide

mvn archetype:create-from-project

在项目根模块下面执行mvn archetype:create-from-project命令,会生成一个maven archetype项目。再此项目下执行maven install,会将此archetype安装到本地maven仓库;

mvn archetype:generate -DarchetypeCatalog=local

使用此命令按照提示操作,可以使用刚刚安装到本地的maven仓库的archetype创建一个项目;

Notice

  1. 生成的项目的各个Module的artifactId都带着groupId前缀
  2. Maven插件对package的处理过程,将现有项目的包名去掉groupid,不会匹配去掉artificialid

常用变量

有时候生成的maven archetype工程可能还需要修改一下,就会用到一些内置的变量。
1. groupIdgroupid2.{artifactId}:当前模块的artifactId,每个模块一个,来自当前模块的配置信息,看archetype-metadata小节
3. rootArtifactIdartifactId4.{parentArtifactId}:父模块的 artifactId,模块划分多层级的时候会用到
4. ${version}

archetype-metadata

<module id="${rootArtifactId}-application-business" dir="business" name="${rootArtifactId}-application-business">   <fileSets>     <fileSet filtered="true" packaged="true" encoding="UTF-8">       <directory>src/main/java</directory>       <includes>         <include>**/*.java</include>       </includes>     </fileSet>   </fileSets> </module>

打包空目录

如果我们想将应用的空目录也做到archetype中去,没有找到对应的设置方法,修改生成的archetype-metadata文件是个选择。

<fileSet filtered="true" packaged="true" encoding="UTF-8">   <directory>src/main/java</directory>   <includes>     <include>**/*.java</include>   </includes> </fileSet> <fileSet encoding="UTF-8">   <directory>src/main/resources</directory>   <includes>     <include>**/*.yml</include>     <include>**/*.json</include>   </includes> </fileSet> <fileSet filtered="true" packaged="true" encoding="UTF-8">   <directory>src/test/java</directory>   <includes>     <include>**/*.java</include>   </includes> </fileSet> <fileSet encoding="UTF-8">   <directory>src/test/resources</directory>   <includes>     <include>**/*.yml</include>     <include>**/*.json</include>   </includes> </fileSet>
原创粉丝点击