创建Maven项目骨架并使用
1、archetype是什么?
archetype 字面意思是 原型.可以理解为archetype相当于一个脚手架/模板,通过这个脚手架/模板我们可以快速的创建出一个项目.
比如下图中的这些就是maven给我们默认提供的archetype
通过其中的 maven-archetype-webapp,我们可以快速构建一个webapp项目.可以节省一定的工作量.
毕竟在实际的开发工作中,尤其是在项目型公司,每次新项目,都是要进行类似的项目初始化的搭建工作,工作量还是不算小的,而且一不小心就出错了.
本文讲的就是如何定制一个脚手架/模板(第二章),以及部署到私服上提供给团队使用时撞见的一些问题(第三章).
2、创建及使用
2.1、创建archetype
首先,模板的创建是基于已有项目的,什么意思呢?就是你要先有一个项目,然后以这个项目为基础创建一个模板。这里假设已经存在一个项目了。
进入项目的根目录,也就是pom.xml
文件所在目录执行以下命令(maven的基础环境就不说了)。
mvn archetype:create-from-project
等待一会发现根目录下出现一个target
目录,目录结构如下:
2.2、安装archetype
进入archetype
目录下,执行如下命令将archetype
安装到本地仓库
mvn install
进入你的本地仓库看看是不是存在了这个包了,就是这么简单。
2.3、使用archetype
第一种方式
任意创建一个文件夹,执行如下命令:
mvn archetype:generate -DinteractiveMode=false -DgroupId=com.whht -DartifactId=test -Dversion=1.0-SNAPSHOT -DarchetypeGroupId=com.huitu.whht.archetype-project -DarchetypeArtifactId=web-api-archetype -DarchetypeVersion=1.0-RELEASE
命令详解:
-DgroupId=com.whht 要创建的工程的信息
-DartifactId=test 要创建的工程的信息
-Dversion=1.0-SNAPSHOT 要创建的工程的信息
-DarchetypeGroupId=com.huitu.whht.archetype-project 采用的archetype的信息
-DarchetypeArtifactId=web-api-archetype 采用的archetype的信息
-DarchetypeVersion=1.0-RELEASE 采用的archetype的信息
-DinteractiveMode 互动模式,【百度一下】
第二种方式
IDEA新建maven project,选择add archetype。
填写生成的项目模板的gav
3、推送私服
3.1、新增server节点
修改maven目录下conf/settings.xml文件。
在servers节点下新增server节点
<server>
<!-- 这个ID要跟模板中pom.xml的ID一致 -->
<id>ID</id>
<username>username</username>
<password>password</password>
</server>
3.2、新增mirror节点
在mirrors节点下新增mirror
<mirror>
<id>mirrorid</id>
<name>mirror id</name>
<url>私服仓库地址</url>
<mirrorOf>*</mirrorOf>
</mirror>
3.3、在profiles节点下新增profile节点
<profile>
<id>profileArchetype</id>
<repositories>
<repository>
<id>跟server节点ID保持一致</id>
<name>随意</name>
<url>推送仓库地址</url>
<releases>
<enabled>false</enabled>
</releases>
</repository>
</repositories>
</profile>
3.4、在pom文件配置仓库
<distributionManagement>
<repository>
<!--这个ID和serverid保持一致-->
<id>nexus-central</id>
<name>nexus central</name>
<url>推送地址</url>
</repository>
<!--推送到snapshot仓库-->
<snapshotRepository>
<id>nexus-snapshot</id>
<name>nexus snapshot</name>
<url>推送地址</url>
</snapshotRepository>
</distributionManagement>
3.5、部署到私服
进入模板文件夹的根目录target/generated-sources/archetype
执行mvn install deploy
就大功告成了。