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

创建Maven项目骨架并使用的更多相关文章

  1. MAVN(自动创建maven项目骨架) 项目架构的生成

    1.Maven的项目架构生成 A.打开DOS命令窗口选定文件的更跟目录 B:输入命令 mvn  archetype:generate C:根据提示输入对应的标识 如图: 最后提示 SUCCESS 即为 ...

  2. 【Maven实战技巧】「插件使用专题」Maven-Archetype插件创建自定义maven项目骨架

    技术推荐 自定义Archetype Maven骨架/以当前项目为模板创建maven骨架,可以参考http://maven.apache.org/archetype/maven-archetype-pl ...

  3. m2eclipse简单使用,创建Maven项目 ,运行mvn命令(转)

    前面介绍了如何安装m2eclipse,现在,我们使用m2ecilpse导入Hello World项目. 选择菜单项File,然后选择Import,我们会看到一个Import对话框,在该对话框中选择Ge ...

  4. 在IDEA中创建Maven项目和添加tomcat

    IDEA中创建是一种创建maven项目的办法,但不推荐,因为没有使用统一的骨架,可以一开始就选择创建maven项目,步骤如下: 第一步 第二步:设置项目 第三步:进行配置好maven,加上 arche ...

  5. Maven项目骨架搭建

    1. 如何使用Maven的archetype快速生成一个新项目 2. Maven之自定义archetype生成项目骨架(一) 3. 使用maven3 创建自定义的archetype 4. 使用mave ...

  6. IDEA创建Maven项目显示一直加载中的问题

    使用IDEA这款工具创建Maven项目的时候出现过下面这种情况: 红色区域即maven骨架加载不出来... 或 loading loading loading ... 有时候需要很长一段时间才能加载出 ...

  7. 解决idea创建Maven项目速度慢

    idea在创建maven项目的时候会去网上自动下载需要的插件,这样就会导致项目创建后一直处于下载插件的状态中,影响开发效率 此时我们可以在创建maven骨架的时候,加入键值对来让maven调用本地的骨 ...

  8. Maven快速入门(二)手动创建maven项目hellomaven

    之前讲过Maven介绍及环境搭建,介绍了maven的作用和如何搭建maven环境.接下来就以一个helloworld的例子来说一说如何创建maven项目以及maven项目的项目结构,最后讲maven如 ...

  9. idea创建maven项目慢的原因以及解决方案

    问题分析;在idea中maven项目所依赖的jar包,默认是从中央仓库直接下载jar包,不管jar包是否在本地仓库存在,所以导致idea创建maven项目速度慢,那么要解决这个问题,那么将idea设置 ...

随机推荐

  1. 浅析IOC 和 DI

    学习过spring框架的人一定都会听过Spring的IoC(控制反转) .DI(依赖注入)这两个概念,对于初学Spring的人来说,总觉得IoC .DI这两个概念是模糊不清的,是很难理解的,今天和大家 ...

  2. JVM-垃圾收集算法基础

    目录 目录 前言 手动释放内存导致的问题 垃圾判定方法 哪些对象是垃圾? 引用计数算法 可达性分析法 垃圾收集算法 标记-清除 优点 缺点 优化 标记-复制 优点 缺点 优化 标记-整理 优点 缺点 ...

  3. Step By Step(userdata)

    Step By Step(userdata) 在Lua中可以通过自定义类型的方式与C语言代码更高效.更灵活的交互.这里我们通过一个简单完整的示例来学习一下Lua中userdata的使用方式.需要说明的 ...

  4. Jenkins代码自动部署相关文档

    环境 centos 7.0+ Java JDK 1.8+ jenkins 2.220 maven 3.0+ git 1.8+ 注意事项 一. linux 安装 JDK (jdk-8u201-linux ...

  5. Linux分区创建、挂载

    fdisk -l 这块盘是没有分区的,没有被使用. fdisk /dev/vdb 操作这块磁盘, 创建分区 格式化/dev/sdb1为ext4 mkfs -t ext4 /dev/vdb1 mkfs. ...

  6. GitHub上YOLOv5开源代码的训练数据定义

    GitHub上YOLOv5开源代码的训练数据定义 代码地址:https://github.com/ultralytics/YOLOv5 训练数据定义地址:https://github.com/ultr ...

  7. CodeGen标记循环

    CodeGen标记循环 标记循环是一个模板文件构造,它允许您迭代CodeGen拥有的标记信息的集合.为了使用标记循环,必须基于至少定义了一个字段标记的存储库结构生成代码.              标 ...

  8. MEMS传感器作为变革的驱动力

    MEMS sensors as drivers for change 物联网(IoT)正在改变与周围世界互动的方式.每个人,每件事,都是相互联系的,很快就会相互联系.微机电系统(MEMS)设备和传感器 ...

  9. sql 处理数据字段为NULL 若不为空则显示该值,若为空转换成别的值。

    第一种方法: 判断字段是否为空,如果为空转成你要的字符 1.oracle : nvl("字段名",'转换后的值')://字段名是双引号,转换后的值是单引号 2.sql Server ...

  10. SpringCloud01:微服务概述

    一.什么是微服务 微服务是一种架构风格,是一种架构设计方式,一个大型复杂软件应用由一个或多个微服务组成.系统中的各个微服务可被独立部署,各个微服务之间是松耦合的.每个微服务仅关注于完成一件任务并很好地 ...