1、archetype是什么?

archetype 字面意思是 原型.可以理解为archetype相当于一个脚手架/模板,通过这个脚手架/模板我们可以快速的创建出一个项目.

比如下图中的这些就是maven给我们默认提供的archetype

IDEA配置

通过其中的 maven-archetype-webapp,我们可以快速构建一个webapp项目.可以节省一定的工作量.

毕竟在实际的开发工作中,尤其是在项目型公司,每次新项目,都是要进行类似的项目初始化的搭建工作,工作量还是不算小的,而且一不小心就出错了.

本文讲的就是如何定制一个脚手架/模板(第二章),以及部署到私服上提供给团队使用时撞见的一些问题(第三章).

2、创建及使用

2.1、创建archetype

首先,模板的创建是基于已有项目的,什么意思呢?就是你要先有一个项目,然后以这个项目为基础创建一个模板。这里假设已经存在一个项目了。

进入项目的根目录,也就是pom.xml文件所在目录执行以下命令(maven的基础环境就不说了)。

mvn archetype:create-from-project

等待一会发现根目录下出现一个target目录,目录结构如下:

image

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

IDEA配置

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文件配置仓库

image

image

<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就大功告成了。

版权声明:本文为lvbok原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lvbok/p/maven_template.html