首頁>技術>

第二坑:Go Module 新的官方包管理形式

這個坑導致以前的很多Go教程失效,以前版本go教程都是直接使用go get 命令把程式碼庫下載到gopath\src\github.com\......下面的路徑中。

我們當前使用的新版本是Go1.16

在 v1.11 中加入了 Go Module 作為官方包管理形式。module是一個相關Go包的集合,它是原始碼更替和版本控制的單元。模組由原始檔形成的go.mod檔案的根目錄定義,包含go.mod檔案的目錄也被稱為模組根。moudles取代舊的的基於GOPATH方法來指定在工程中使用哪些原始檔或匯入包。模組路徑是匯入包的路徑字首,go.mod檔案定義模組路徑,並且列出了在專案構建過程中使用的特定版本。

第1步:開啟mod開關:

使用命令列:go env -w GO111MODULE=on

表示設定Go1.11版本的MODULE模式開關狀態為ON

第2步:建立一個work工程

手工建立d:\gopath\src\test目錄,這個test目錄就是我們預設的一個具體工程目錄,也可以設定其他名稱。這個test在Go中稱為一個package.

知識點:package包:

1.注意在GO中一個具體的目錄稱為一個package包,強烈建議目錄名和package包一致,否則容易出問題

2.每個子目錄中只能存在一個package,否則編譯時會報錯

3.go的package是以絕對路徑GOPATH來定址的,不要用相對路徑來import

初始工程例項:

在d:\gopath\src\test路徑下使用命令:go mod init test

表示在test目錄中建立mod.

使用完成後檢視d:\gopath\src\test路徑下會新生成兩個檔案:

go.mod檔案:內容類似這樣的(共兩行)

module test

go 1.16

再使用命令:go get github.com/360EntSecGroup-Skylar/excelize/v2

現在go.mod檔案內容變成了三行:

module test

go 1.16

require github.com/360EntSecGroup-Skylar/excelize/v2 v2.3.2 // indirect

後來我將依據這個test工程包來做些入門小示例

5
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Feign : 優雅的呼叫 API