包管理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:GOPROJECTMyTest 目录中 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 文件夹中 ? ? 完。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |