告別GOPATH,快速使用 go mod(Golang包管理工具)

如果你還在使用 GOPATH 模式來開發(fā)Golang程序,那么你可以參考本文來告別 GOPATH,并帶給你一個(gè)方便的包管理工具。

關(guān)于 go mod 的說明和簡單使用,可以參考:

1、Go1.1.1新功能module的介紹及使用

2、Introduction to Go Modules

3、Go 1.11 Modules 官方說明文檔

使用go mod 管理項(xiàng)目,就不需要非得把項(xiàng)目放到GOPATH指定目錄下,你可以在你磁盤的任何位置新建一個(gè)項(xiàng)目,比如:

新建一個(gè)名為 wserver 的項(xiàng)目,項(xiàng)目路徑?D:\test\wserver (注意,該路徑并不在GOPATH里)

進(jìn)入項(xiàng)目目錄?D:\test\wserver 里,新建一個(gè) go源碼文件: main.go

然后在?D:\test\wserver 里打開終端執(zhí)行命令:? go mod init wserver (go mod init 后面需要跟一個(gè)名字,我這里叫wserver)

看到提示 “go: creating new go.mod: module wserver”? 說明 go mod 初始化成功了,會在當(dāng)前目錄下生成一個(gè) go.mod 文件。

包含go.mod文件的目錄也被稱為模塊根,也就是說,go.mod 文件的出現(xiàn)定義了它所在的目錄為一個(gè)模塊。

執(zhí)行上述命令之后,其實(shí)你已經(jīng)可以開發(fā)編譯運(yùn)行此項(xiàng)目了,比如我們隨便使用github上的一個(gè)包,在終端打印一下

運(yùn)行一下,會看到輸出結(jié)果:? { false false false}? ,同時(shí)項(xiàng)目目錄下多出了一個(gè)文件 go.sum? 。go.sum 是記錄所依賴的項(xiàng)目的版本的鎖定。

現(xiàn)在我們再建一個(gè)項(xiàng)目內(nèi)的包 route :

在 main.go 里如果需要使用這個(gè)包,需要使用這個(gè)包的 模塊內(nèi)的絕對路徑來導(dǎo)入,比如:

"wserver/route"? 導(dǎo)入這個(gè)包的地方是 模塊內(nèi)的絕對路徑,就是要從go.mod所在的目錄開始。

另外,如果我們想把這個(gè)項(xiàng)目放到GOPATH下面,不使用go mod模式,而是想使用GOPATH模式的話,,只需要把這個(gè)項(xiàng)目移到GOPATH環(huán)境變量包含的任意一個(gè)目錄下面的src目錄里,就可以啟用GOPATH模式了(前提是 GO111MODULE 這個(gè)環(huán)境變量的值必須是auto 或 off)。

比如:gotest 目錄是GOPATH環(huán)境變量里的其中一個(gè)目錄,我們將上面的代碼復(fù)制到 src 目錄下,刪除原來的go.mod 、go.sum 兩個(gè)文件(也可以不刪除),代碼一樣可以運(yùn)行:

小總結(jié):

使用go mod ,利用Go 的 module 特性,你再也不需要關(guān)心GOPATH了(當(dāng)然GOPATH變量還是要存在的,但只需要指定一個(gè)目錄,而且以后就不用我們關(guān)心了), 你可以任性的在你的硬盤任何位置新建一個(gè)Golang項(xiàng)目了。

好了,本文就是個(gè)非常簡單的小示例,只是告訴初次使用go mod的人,如何快速開始使用go mod 。詳細(xì)的概念和使用方法,請仔細(xì)閱讀開頭列出的3篇文章。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容