我用 Golang 的 Web 框架 Iris 寫項目時,發現下載依賴總是失敗緣由是被牆了(能夠參考上一篇 https://www.cnblogs.com/ser0632/p/11374790.html)。html
還有一個問題是:當你想把寫好的代碼發給同事看時,你不可能讓你同事再次下載依賴包,而是將依賴包打包到項目的 vendor 目錄下一塊發給你的同事。git
下面就講解處理辦法。github
Go 的 module 不少功能,我這裏只講我工做中用到的狀況。app
個人工做文件夾是 D:\GOPROJECT 目錄。框架
1.在 D:\GOPROJECT 目錄中建立一個文件夾 MyTest 我也稱 MyTest 爲個人項目。ui
2.在 MyTest 目錄下建立 mian.go 文件,文件內容以下:debug
package main import ( "github.com/kataras/iris" "github.com/kataras/iris/middleware/logger" "github.com/kataras/iris/middleware/recover" ) func main() { app := iris.New() app.Logger().SetLevel("debug") app.Use(recover.New()) app.Use(logger.New()) app.Get("/", func (ctx iris.Context){ ctx.HTML("Hello vendor") }) app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed)) }
3.打開CMD命令框,進入到 D:\GOPROJECT\MyTest 目錄中3d
4.在命令框中執行如下兩條命令code
set GO111MODULE=onhtm
set GOPROXY=https://goproxy.io
注意:若是不想每次打開命令框輸入以上兩條代碼,可把這兩條命令寫入到環境變量中,以下圖:
5.在命令框中執行 go mod init MyTest
init 後面的名稱可自定義,爲了對應項目的名稱,因此我也用了 MyTest。
執行完後會發現項目路徑下多了一個 go.mod 的文件
6.在CMD命令框中執行 go build main.go
執行完後(若是你的代碼沒有語法錯誤),你會發現MyTest 目錄下又多了兩個文件 go.sum 和 main.exe 文件。
7.在CMD命令框執行 go mod vendor
這樣就會把全部的依賴包,都打包到項目下的 vendor 文件夾中(注意 CMD的當前目錄必定要在項目中)。
此時你的項目 MyTest 會多一個 vendor 文件夾。
全部的依賴包都在 vendor 文件夾中
完。