我用 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 文件夹中
完。