基于已有项目,快速创建项目模板

基于已有项目,快速创建项目模板

mvn Archetype的妙用

背景

在开发过程中,尤其是使用Maven作为包管理工具时,在创建新模块时,总会有些头疼。

常见场景

从网上下载下来的开源项目(或者公司的大型项目),需要新建一个模块或系统,而这个开源项目,可能层次非常多。这时手动创建就很有可能产生错误。而Maven依赖等错误,有时候会非常隐蔽,不容易发现。

一.选定原始模型

这里以一个demo为例。此demo层层嵌套(阿里Cola4.0的demo)。如果创建一个新的领域模块,要创建6个模块,这是非常危险的,也是非常枯燥的。

在这里插入图片描述

二.构建原始模型

1.选择需要创建的模板

如demo中,我们就直接以整个demo为原始模型进行创建,这样,以后就可也直接拿着这个架构结构,创建项目了。

2.生成原始模型

进入demo父工程的pom.xml目录下(demo-web-parent ),执行(无需修改)

mvn archetype:create-from-project  

在这里插入图片描述

3.发送原始模型到本地仓库

上面刚刚生成的原始模型,还需要发送到本地Maven仓库,才可使用。
进入生成好的target\generated-sources\archetype目录,执行

mvn clean install

在这里插入图片描述

4.检查是否推送成功

打开Maven的依赖目录~\.m2\repository,可以看到文件archetype-catalog.xml
看到如下类似记录,说明已经创建好了。

<?xml version="1.0" encoding="UTF-8"?>
<archetype-catalog xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0 http://maven.apache.org/xsd/archetype-catalog-1.0.0.xsd"
    xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-catalog/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <archetypes>
    <archetype>
      <groupId>com.alibaba.cola.demo.web</groupId>
      <artifactId>demo-web-parent-archetype</artifactId>
      <version>1.0.0-SNAPSHOT</version>
      <description>demo-web-parent-archetype</description>
    </archetype>
  </archetypes>
</archetype-catalog>

三.使用原始模型创建新项目\模块

1.使用IDEA创建

  1. File->New->Project/Module,看到如下界面,输入刚刚archetype-catalog.xml文件中看到的三维坐标。第四项,可不填。
    在这里插入图片描述
  2. 按照实际填写即可。
    在这里插入图片描述
  3. 第三步,毕竟比较重要,有很多可选项,当然,也可以不填。
key 实例 说明
groupId com.tianjingle.wang 新建项目的工程名
artifactId demotianjingle 要创建的项目名称
version 1.0.0-SNAPSHOT 要创建的项目的版本号
package com.tianjingle.wang 要创建的项目的基础包名
archetypeGroupId com.example ./m2下的xml里的
archetypeArtifactId demo-archetype ./m2下的xml里的
archetypeVersion 0.0.1-SNAPSHOT ./m2下的xml里的
archetypeCatalog local 从本地仓库选取模板
interactiveMode false

在这里插入图片描述

2.使用mvn命令创建

字段说明,如上面表格

mvn archetype:generate -DgroupId=ltzDemo -DartifactId=com.ltz -Dversion=1.0.0-SNAPSHOT -Dpackage=com.ltz.demo -DarchetypeGroupId=com.alibaba.cola.demo.web -DarchetypeArtifactId=demo-web-parent-archetype -DarchetypeVersion=1.0.0-SNAPSHOT -B -DarchetypeCatalog=local -DinteractiveMode=false

四.创建成功

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/LitongZero/article/details/114143710