包管理Go module的使用


我用 Golang 的 Web 框架 Iris 寫項目時,發現下載依賴老是失敗原因是被牆了(可以參考上一篇 https://www.cnblogs.com/ser0632/p/11374790.html)。

還有一個問題是:當你想把寫好的代碼發給同事看時,你不可能讓你同事再次下載依賴包,而是將依賴包打包到項目的  vendor 目錄下一塊發給你的同事。

下面就講解處理辦法。

Go 的 module 很多功能,我這里只講我工作中用到的情況。

我的工作文件夾是 D:\GOPROJECT 目錄。

1.在 D:\GOPROJECT 目錄中創建一個文件夾 MyTest 我也稱 MyTest 為我的項目。

2.在 MyTest 目錄下創建 mian.go 文件,文件內容如下:

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 目錄中

4.在命令框中執行以下兩條命令

set GO111MODULE=on

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 文件夾中

 

 

完。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM