









go 1.11 发布了一种新的模式来管理go程序的依赖库,这种方式不同于vendor模型。
它主要提供下面几个重要特性:
$GOPATH/pkg/mod来存储go mod的缓存文件,提高go get速度$GOPROXY和goproxy交互机制
go mod服务器golang.org/x/text等老大难第三方依赖库提供缓存和提速go mod为启用go mod,需要配置GO111MODULE环境变量:
GO111MODULE=off 无模块支持,go 会从 $GOPATH 和 vendor 文件夹寻找包。GO111MODULE=on 模块支持,go 会忽略 $GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。go get
go get必须在一个启用了 go mod 的项目的根目录去执行,这样执行过go get,将会自动改下本目录下的go.mod文件。go build
go build 会先检查当前目录中go.mod记录的依赖,并检查$GOPATH/pkg/mod中的缓存,如果没有,则会启动go get流程。go build可以强制提供一个参数go build -mod vendor来使用vendor模式,而不是go mod自身在gopath中缓存的文件。此处有一个开源版本的 goproxy.io
和它的github主页 github.com/goproxyio
Athens is a Server for Your Go Packages
项目地址 https://github.com/gomods/athens
Athens可以用来在公司内部建立自己的私有go mod服务器,
或者在公网建立一个对外公开的GOPROXY server。
参考:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。