Maven插件之maven-archetype-plugin

偶尔善良 提交于 2019-11-27 09:15:47

学过Maven的人,都知道用MyEclipse的Maven插件生成一个项目骨架,比如maven-archetype-quickstart,这个原型就是最常用的之一。

刚开始使用骨架的时候,感觉很好,减少了重复劳动,提高了开发效率。使用的时间久了,就会发现,Maven Archetype提供的项目骨架不能百分百的满足公司规定的项目结构,不免要手动改些东西。

此时,自然而然的就会想到:如果能将公司(或项目组)规定的项目结构作为一个骨架原型上传个私服,作为模版供项目使用,就无须修改任何的文件。也减少了项目环境搭建时间、降低了出错率等。

实际应用中,项目组(或者部门/公司)会有自己的私服,因此以下的介绍前提条件是配有自己的私服。

  第一步:选择模版项目,生成原型。

  选择生成Archetype的模板项目,运行命令:mvn clean archetype:create-from-project

  命令参数可参考

  但实际应用中,模板项目选好后,一般无须指定任何参数。

  此时项目的Archetype已经生成,位于${basedir}/target/generated-sources/archetype/目录下。

  第二步:将Archetype上传到私服,共享给其他人使用(需要有deploy权限和scm配置)。

  到${basedir}/target/generated-sources/archetype/目录下执行命令:mvn deploy

  将该原型上传到私服,此时前期工作完成,以后可以使用该原型生成项目骨架。

  第三步:使用Archetype生成项目骨架。

  任意目录下,执行命令:

  mvn archetype:generate

  -DinteractiveMode=false

  -DarchetypeCatalog=internal,remote

  -DarchetypeRepository=

  -DarchetypeGroupId=com.ktr

  -DarchetypeArtifactId=java-project-template-archetype

  -DarchetypeVersion=1.1-SNAPSHOT

  -DgroupId=com.ktr

  -DartifactId=ktr-t

  -Dversion=0.1-SNAPSHOT

  -Dgoals=compile

  (命令应该在一行,为了方便查看,故分开多行)

  命令参数的详细说明:

  

  interactiveMode:交互模式,默认为true,在交互模式下运行命令,要求用户指定选用的原型,以及生成项目模版的groupId、artifactId、version、package等属性,否则执行失败;

  archetypeCatalog:Archetype查找规则;

  archetypeRepository:仓库URL地址;不指定,则默认从中央库查找;

  archetypeGroupId:原型的groupId;默认值为org.apache.maven.archetypes;

  archetypeArtifactId:原型的artifactId;默认值为maven-archetype-quickstart;

  archetypeVersion:原型的version;默认值为1.0;

  如果interactiveMode属性设置为false(或使用Maven参数-B),则为批处理模式。此时需要指定如下参数

  

  groupId:生成项目的groupId;必选;

  artifactId:生成项目的artifactId;必选;

  version:生成项目的version;默认值1.0-SNAPSHOT;

  package:生成项目的源码包结构;默认值使用${groupId};

  basedir:项目生成的目录;默认值为当前目录;

  此时,第三步的命令可简化为:

  mvn archetype:generate

  -DinteractiveMode=false

  -DarchetypeGroupId=com.ktr

  -DarchetypeArtifactId=java-project-template-archetype

  -DarchetypeVersion=1.1-SNAPSHOT

  -DgroupId=com.ktr

  -DartifactId=ktr-t

  补充说明:

  通过MyEclipse的Maven插件生成项目骨架时,其直接连接中央库,无法连接私服,因此不能使用自定义的项目原型,而应该使用Maven命令行来生成项目骨架。


易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!