如何用Maven模板创建工程
主要使用的是archetype:generate
插件。
主要应用场景:
创建一个模板项目。
比如说cxf的技术你想了解下,然后就可以在模板中找下有没有别人写好的关于cxf基本使用的工程。
如果就,直接把这个按这个模板创建工程,再基于模板进行修改。
比自己找jar包依赖,复制代码效率要高多了。
使用方法
有两种使用模式,交互式
和批量式
既然是模板,当然有个模板列表文件。
位于http://repo.maven.apache.org/maven2/archetype-catalog.xml
运行
1 |
|
也可以列出可选的模板。
在archetypefile.txt中就有对应该模板的序号。
有了这个序号,可以在交互模式中选按这个序号创建。
1 |
|
在这里就可以选要创建的模板序号。
(序号从archetypefile.txt中找出来)
可以通过,把http://repo.maven.apache.org/maven2/archetype-catalog.xml
中的内容下载到{user_home}\.m2\
下,然后指定archetypeCatalog为local来避免等待时间过长。
1 |
|
有时候会出出这个错误。
The desired archetype does not exist
解决办法
http://www.cnblogs.com/MOBIN/p/5147784.html
参数含义
- -DgroupId——组织机构ID,com.xxx
- -DarchefactID——项目ID,xxx-starter
- -DpackageName——包名称,comxxx.
- -Dversion——项目版本,0.0.1-snapshot
- -DarchetypeGroupId——原型组织机构ID,org.apache.maven.archetypes
- -DarchetypeArtifactId——原型项目ID,maven-archetype-quickstart
- -DarchetypeVersion——原型项目版本,1.0
- -DinteractiveMode——交互模式,false
- -DarchetypeCatalog——原型查找策略,查找archetype-catalog.xml的位置
- internal,maven-archetype-plugin内置的
- local,{user_home}/.m2/archetype-catalog.xml
- remote,指向maven中央仓库
如何从已有的工程创建archetype模板
- 进入已有工程根目录,如
root
,运行mvn archetype:create-from-project
- 在
target
生成generated-sources\archetype
目录,这个目录下就是创建模板的工程 - 进入该目录
root\target\generated-sources\archetype
,查看pom.xml文件 - pom.xml中有groupId,artifactId,version,description,适情况修改
* 运行mvn install
,会把模板工程安装在本地 - 可以在
.m2\repository\
目录下看到archetype-catalog.xml
文件,在其中看到与上面pom文件一样的配置 - 接下来创建工程,与上面的步骤类似,指定上面pom文件中的相关配置就行
- 如果要部署到远程仓库,在pom文件中配置distributionManagement,再进行
mvn deploy
其它人就可以用了
关于archetype中其它文件的说明
generated-sources\archetype\src\main\resources\META-INF\maven\
的archetype-metadata.xml文件,这里记录了文件的打包信息generated-sources\archetype\src\test\resources\projects\basic\
的archetype.properties文件,以键值对的形式定义一些变量,也可以自己加变量中去,这样引擎在生成文件中,会对标记的变量进行替换
参考
如何用Maven模板创建工程
https://blog.fengcl.com/2018/03/02/how-to-create-a-project-with-maven-template/