Artizan-MsOnAbp:将其自定义成 .Net 模板

需求背景

Artizan-MsOnAbp 项目信息如下:
目录结构

其内部还有一些小项目,比如微服务:services\administration

解决方案

微服务:services\administration:

我们希望以此项目为模板,创建一个以:IotPlatform 为前缀的项目,如下所示:
目录结构
1686564565137

解决方案
1686564565137

Artizan-MsOnAbp:.Net 自定义模板

下面将介绍如何以项目:Artizan-MsOnAb (artizan-abp-microservice)为模板,创建一个 .Net 自定义模板。

创建模板的目录结构

首先,创建文件夹 templates,所有的项目模板将保存于此。

从 gitee 下载 artizan-abp-microservice 项目代码:

git clone [email protected]:Artisan-k/artizan-abp-microservice.git

提示:

之所以使用 git clone 是过滤掉不必要的文件和文件夹,比如: bin文件,node_modles,若使用本地文件,还得清理这些文件和文件夹,影响本地开发。

把项目代码移动到 templates/artizan-abp-microservice/content 目录下,至此目录结构如下:

├── templates                          //  用来存放所有的模板
│   ├── artizan-abp-microservice       //  artizan-abp-microservice 模板全部内容
│   │    ├── content                   //  存放项目代码和文件
│   │    │    ├── apps          
│   │    │    ├── gateways        
│   │    │    ├── services      
│   │    │    ├── ...         
│   │    │    └── MsOnAbp.sln     
│   │    │ 
│   │    ├── LICENSE.md    存放版权许可信息,如果不添加,后边会警告
│   │    │ 
│   │    └── 
│   │
│   └── 

template.json

创建文件夹templates\artizan-abp-microservice\content\.template.config

注意:这是一个以点号为开头的文件夹

然后在其中创建名为:template.json用于定义模板的配置文件,并修改其内容为:

{
  "$schema": "http://json.schemastore.org/template",
  "author": "majiangfang",
  "classifications": ["Artizan", "Microservice", "ABP", "C#"],
  "identity": "Artizan.Abp.Microservice.Template",
  "sourceName": "MsOnAbp",
  "name": "Artizan ABP Microservice Template",
  "description": "Artizan ABP Microservice Template",
  "tags": {
    "language": "C#",
    "type": "solution"
  },
  "shortName": "artizan-abp-ms",
  "preferNameDirectory": true
}

详细信息可以查看官网 :https://docs.microsoft.com/zh-cn/dotnet/core/tools/custom-templates

到目前为止,目录结构如下:

├── templates                          //  用来存放所有的模板
│   ├── artizan-abp-microservice       //  artizan-abp-microservice 模板全部内容
│   │    ├── content                   //  存放项目代码和文件
│   │    │    ├── .template.config
│   │    │        └── template.json                
│   │    │    ├── apps          
│   │    │    ├── gateways        
│   │    │    ├── services      
│   │    │    ├── ...         
│   │    │    └── MsOnAbp.sln   
│   │    │ 
│   │    ├── LICENSE.md    存放版权许可信息,如果不添加,后边会警告
│   │    │ 
│   │    └── 
│   │
│   └── 

生成本地模板

然后执行如下命令,生成本地模板:

> dotnet new install F:\05-workspace\dev\01-lab\abp-framework\templates\artizan-abp-microservice


将安装以下模板包:
   F:\05-workspace\dev\01-lab\abp-framework\templates\artizan-abp-microservice

成功: F:\05-workspace\dev\01-lab\abp-framework\templates\artizan-abp-microservice 已安装以下模板:

模板名                              短名称           语言   标记
---------------------------------  --------------  ----  ---------------------------
Artizan ABP Microservice Template  artizan-abp-ms  [C#]  Artizan/Microservice/ABP/C#

注意:短名称:artizan-abp-ms,后面我们将使用它来生成项目

NOTE:
执行如下命令卸载模板,

dotnet new uninstall F:\05-workspace\dev\01-lab\abp-framework\templates\artizan-abp-microservice

前提是:本地项目没有被删除。

使用本地模板生成项目

使用本地模板的短名称:artizan-abp-ms 来生成项目,执行如下命令,生成一个以:IotPlatform 为前缀的项目:

> dotnet new artizan-abp-ms -n IotPlatform
已成功创建模板“Artizan ABP Microservice Template”。

生成的项目如下:

1686564565137

其内部的一些小项目,比如微服务:services\administration
1686564565137

解决方案结构:

1686564565137

其内部的一些小项目,比如微服务:services\administration
1686564565137

发布到 Nuget

(略)

参考资料

从壹开始前后端分离 39 || 想创建自己的dotnet模板么?看这里 - 老张的哲学 - 博客园 (cnblogs.com)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章