美文网首页Go
Golang Modules 包管理实践

Golang Modules 包管理实践

作者: 承诺一时的华丽 | 来源:发表于2019-03-19 14:53 被阅读6次

    1、设置环境变量

    • Windows
    workdir> set GO11MODULE=on
    
    • Linux
    workdir> export GO111MODULE=on
    

    2、mod初始化

    workdir> go mod init [project name]
    

    3、go mod tidy

    从 go.mod 删除不需要的依赖、新增需要的依赖,这个操作不会改变依赖版本。

    workdir> go mod tidy
    

    4、针对国外无法访问的包处理

    在go build main.go的时候会更新包,如果引用的是国外的包将报错:

    go: finding github.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58
    go: golang.org/x/net@v0.0.0-20181114220301-adae6a3d119a: unrecognized import path "golang.org/x/net" (https fetch: Get https://golang.org/x/net?go-get=1: dial tcp 216.239.37.1:443: connectex: A connection attempt failed becau
    se the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)
    go: error loading module requirements
    
    解决方法 一:替换源
    • 找到golang.org/x/net对应GitHub上面的镜像
    • 替换并指定版本
    workdir> go mod edit -replace=golang.org/x/golang.org/x/crypto@v0.0.0-20181127143415-eb0de9b17e85=github.com/golang/golang.org/x/crypto@v0.0.0-20181127143415-eb0de9b17e85
    
    解决方法 二:go模块 Github 全局代理

    首先,您需要启用Go Modules功能并配置Go以使用代理。

    • Linux
    export GOPROXY=https://goproxy.io
    
    • Windows
    $env:GOPROXY = "https://goproxy.io"
    

    现在,当您构建并运行应用程序时,go将通过goproxy.io获取依赖项。

    相关文章

      网友评论

        本文标题:Golang Modules 包管理实践

        本文链接:https://www.haomeiwen.com/subject/bnwwmqtx.html