在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.1 环境变量export GO111MODULE="on" export GONOPROXY="git.example.com,x1" 1) GO111MODULEgo语言提供
2) GOPROXY
direct实际上 “direct” 是一个特殊指示符,用于指示 Go 回源到模块版本的源地址去抓取(比如 GitHub 等),场景如下:当值列表中上一个 Go 模块代理返回 404 或 410 错误时,Go 自动尝试列表中的下一个,遇见 “direct” 时回源,也就是回到源地址去抓取,而遇见 EOF 时终止并抛出类似 “invalid version: unknown revision…” 的错误。 3)GONOPROXY、GONOSUMDB、GOPRIVATE这三个环境变量都是用在当前项目依赖了私有模块,例如像是你公司的私有 git 仓库,又或是 github 中的私有库,都是属于私有模块,都是要进行设置的,否则会拉取失败。对于一些自己的私有模块代码,需要在 可以设置多个,用英文的逗号分隔开;或者用通配符等 export GOPRIVATE="git.example.com,github.com/eddycjy/mquote" 1.2 提供的命令在go环境的shell中执行 go mod help 查看命令和说明。 Usage: go mod <command> [arguments] The commands are: download 下载模块到本地缓存,缓存路径是 2.go modules的基本使用开启 GO111MODULE="auto" GOARCH="amd64" GOBIN="/go/bin/" GOCACHE="/root/.cache/go-build" GOENV="/root/.config/go/env" GOEXE="" GOFLAGS="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOINSECURE="" GONOPROXY="" GONOSUMDB="" GOOS="linux" GOPATH="/home/go-project/" GOPRIVATE="" GOPROXY="https://goproxy.cn,direct" GOROOT="/go" GOSUMDB="sum.golang.org" GOTMPDIR="" GOTOOLDIR="/go/pkg/tool/linux_amd64" GCCGO="gccgo" AR="ar" CC="gcc" CXX="g++" CGO_ENABLED="1" GOMOD="" CGO_CFLAGS="-g -O2" CGO_CPPFLAGS="" CGO_CXXFLAGS="-g -O2" CGO_FFLAGS="-g -O2" CGO_LDFLAGS="-g -O2" PKG_CONFIG="pkg-config" GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build940953411=/tmp/go-build -gno-record-gcc-switches" 设置了 2.1 初始化项目在 2.1.1 初始化.mod文件在 执行完初始化操作后生成了一个go.mod的文件,里面只记录了2行:
2.1.2 简单一个示例在 package main import ( "net/http" "github.com/gin-gonic/gin" "github.com/json-iterator/go" ) type resp struct { Status int `json:"status"` Message string `json:"message"` } func main() { router := gin.Default() router.GET("/", hello()) if err := router.Run(":6060"); err != nil { panic(err) } } func hello() gin.HandlerFunc { return func(context *gin.Context) { strResp, _ := jsoniter.MarshalToString(resp{ Status: http.StatusOK, Message: "success", }) context.String(http.StatusOK, strResp) } } 在 同时在 2.1.3 go modules的go get在拉取项目依赖时,你会发现拉取的过程总共分为了三大步,分别是 finding(发现)、downloading(下载)以及 extracting(提取), 并且在拉取信息上一共分为了三段内容: 需要注意的是,所拉取版本的 commit 时间是以UTC时区为准,而并非本地时区,同时我们会发现我们 go get 命令所拉取到的版本是 v0.0.0,这是因为我们是直接执行 go get -u 获取的,并没有指定任何的版本信息,由 Go modules 自行按照内部规则进行选择。
那么我想选择具体版本应当如何执行呢,如下:
|
请发表评论