Maven Archetype Plugin
原创
©著作权归作者所有:来自51CTO博客作者陈振阳Plus的原创作品,请联系作者获取转载授权,否则将追究法律责任
发博词
经测试,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
- 生成的项目的各个Module的artifactId都带着groupId前缀
- Maven插件对package的处理过程,将现有项目的包名去掉groupid,不会匹配去掉artificialid
常用变量
有时候生成的maven archetype工程可能还需要修改一下,就会用到一些内置的变量。
- ${groupId}:groupid;
- ${artifactId}:当前模块的artifactId,每个模块一个,来自当前模块的配置信息,看archetype-metadata小节
- ${rootArtifactId}:根模块的artifactId
- ${parentArtifactId}:父模块的 artifactId,模块划分多层级的时候会用到
- ${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>