Winse Blog

走走停停都是风景, 熙熙攘攘都向最好, 忙忙碌碌都为明朝, 何畏之.

Maven创建自己的Archetype

最近经常用到scala,创建的小工程也挺多的。每次都的复制一些properties和plugins挺繁琐的。准备自己搞一个archetype,以后直接用archetype生成一步到位(相当于一个模板)。

首先创建一个模板工程

把需要修改的属性和插件,以及一些常用到的文件都放置好,如log4j.properties等。

使用命令创建archetype工程

1
mvn clean archetype:create-from-project

注意: maven-archetype-plugin插件需要定位mvn.bat,而我的maven-3.3.9的命令名称为mvn.cmd,需要简单暴力的复制一个。

生成后,在 target\generated-sources\archetype 目录即为创建archetype工程。

清理IDE相关文件

target\generated-sources\archetype\src\main\resources\META-INF\maven 下面的 archetype-metadata.xml 为Archetype的元数据(真正包括那些文件的配置)。可以根据实际情况进行编辑

文件夹 target\generated-sources\archetype\src\main\resources\archetype-resources 下包括所有(新建时)需要拷贝的文件,但同时目录下面也包括了IDE相关文件,可以把这些文件 删掉

本地安装

清理完文件后,回到 target\generated-sources\archetype 执行 mvn install 把这个原型(Archetype)安装到本地。

使用

1
2
3
4
mvn archetype:generate -B \
-DarchetypeGroupId=com.example -DarchetypeArtifactId=scala-simple-archetype -DarchetypeVersion=1.0 \
-DarchetypeCatalog=local \
-DgroupId=com.github.winse -DartifactId=Hello

注意 archetypeCatalog 属性,如果不配置为本地(local/internal )的话要等很久(可以用-X输出调试信息查看操作停在哪)。对于intellij idea可以在 Default Settings - Build,Exection,Deployment - Build Tools - Maven - Runner 加上 VM Options 参数: -DarchetypeCatalog=local

–END

Comments