自定義.NET Core項(xiàng)目模板
時(shí)間:2023-06-06 13:36:01 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-06-06 13:36:01 來(lái)源:網(wǎng)站運(yùn)營(yíng)
自定義.NET Core項(xiàng)目模板:
前言
在.net core之前,創(chuàng)建項(xiàng)目的方式的方式大概有以下幾種
- 猛漢型,每個(gè)項(xiàng)目都徒手從0開(kāi)始建項(xiàng)目
- 拷貝型,從以把以前項(xiàng)目拷過(guò)來(lái),刪除vss等信息
- 工具型,使用代碼生成器,或者腳本,創(chuàng)建項(xiàng)目
以上方式各有利弊,好在在.net core時(shí)代,一切不再那么繁瑣,我們有了dotnet cli,也就是腳手架,通過(guò)它我們可以很方便的創(chuàng)建自己的項(xiàng)目模板。
今天我就給大家分享一下如何創(chuàng)建自己的項(xiàng)目模板,算是一個(gè)入門(mén)篇,廢話不多說(shuō)我們開(kāi)始吧!
dotnet cli自帶模板有哪些?
我們輸入dotnet new -l 來(lái)列出來(lái)所有的模板信息,這里每個(gè)人都有可能不一樣,可以看出來(lái)模板種類還是很多的。
所有模板信息編寫(xiě)自己的模板
下面我們開(kāi)始編寫(xiě)自己的模板,首先要?jiǎng)?chuàng)建項(xiàng)目,這個(gè)可以按照自己的項(xiàng)目創(chuàng)建風(fēng)格來(lái),我就創(chuàng)建了一個(gè)最基本的webapi項(xiàng)目架構(gòu),同時(shí)引入swagger,項(xiàng)目結(jié)構(gòu)如下
跑起來(lái)的項(xiàng)目,大致如下
好了,項(xiàng)目我們已經(jīng)有了,那么如何將它變成模板呢。我們先在項(xiàng)目根目錄創(chuàng)建.template.json文件夾(注意前面還有個(gè)點(diǎn)),然后在這個(gè)文件夾下面創(chuàng)建template.json文件,用來(lái)告訴.NET Core CLI該怎樣產(chǎn)生新的項(xiàng)目,目錄結(jié)構(gòu)如下
創(chuàng)建template.json文件template.json內(nèi)容示例如下
{ "author": "Hugh Wang", "classifications": [ "Web/WebAPI" ], "name": "TplDemo", "identity": "TplDemoTemplate", "shortName": "tpl", "tags": { "language": "C#" , "type":"project" }, "sourceName": "TplDemo", "preferNameDirectory": true}
肯定有小伙伴一頭霧水,上面這些參數(shù)都是啥呀,別著急,下面我對(duì)關(guān)鍵的一些參數(shù)一一道來(lái)。
- author:此模板的作者名稱
- identity:模板唯一名
- name:模板名稱
- shortName:模板名稱的簡(jiǎn)寫(xiě)
- classifications:模板分類,出現(xiàn)在模板的Tags列中
- sourceName:這是一個(gè)可選參數(shù),我們?cè)趫?zhí)行dotnet new的時(shí)候,可以指定-n(name)參數(shù),這個(gè)參數(shù)定義了項(xiàng)目名稱,在指定-n的情況下,該設(shè)置的字符串會(huì)被其替代。
- preferNameDirectory:在執(zhí)行dotnet new的時(shí)候,如果你有指定-n參數(shù),預(yù)設(shè)會(huì)建立一個(gè)與-n參數(shù)值同名的文件夾,如果你將該屬性設(shè)定為false的話,就不會(huì)創(chuàng)建。此屬性默認(rèn)為true。
template.json寫(xiě)完了,下面我們就要將它安裝到cli中
進(jìn)入項(xiàng)目根目錄(當(dāng)然您也可以在-i后面自己指定.template.json文件夾路徑),安裝示例如下
dotnet new -i .
安裝完成后,就可以看到我們的模板已經(jīng)安裝好了。
我們?cè)倏纯催@個(gè)模板的幫助信息
dotnet new tpl -h
我們沒(méi)有設(shè)置額外的參數(shù),所以這里顯示的是沒(méi)有參數(shù)。
下面我們創(chuàng)建一個(gè)項(xiàng)目試試
項(xiàng)目很快就創(chuàng)建好了,可以看到,除了名字,其他的結(jié)構(gòu)都是一樣的
跑起來(lái)看看
至此,我們自己創(chuàng)造了一個(gè)最簡(jiǎn)單的項(xiàng)目模板,其實(shí)cli還有很多更高級(jí)更靈活的配置如文件過(guò)濾,動(dòng)態(tài)切換等我再單獨(dú)寫(xiě)一篇文章跟小伙伴們分享。
可以說(shuō)有了有了自己的腳手架,可以一鍵生成自己需要的東西,還是很爽的,它幫助我們從繁重的重復(fù)的工作中解脫出來(lái),把精力更多的放在業(yè)務(wù)上。
關(guān)鍵詞:項(xiàng)目,模板,定義