zoukankan      html  css  js  c++  java
  • go module 介绍

    go Module 是 Go 语言的一种依赖管理方式。
    在 Go 1.11 版本中出现的,在1.13版本前,需要显式设置环境变量GO111MODULE的值为on。

    1.13版本以后,该环境变量被设置为auto,在GOPATH内,GO111MODULE的值为off,也就是使用GOPATH;
    如果在GOPATH之外,或者在有go.mod文件的目录下,则GO111MODULE的值为on,开启Go Module特性。

    设置代理:go env -w GOPROXY=https://goproxy.cn,direct

    查看配置

    $ go env
    GO111MODULE="on"
    GOARCH="amd64"
    GOBIN=""
    GOCACHE="/Users/fsj/Library/Caches/go-build"
    GOENV="/Users/fsj/Library/Application Support/go/env"
    GOEXE=""
    GOFLAGS=""
    GOHOSTARCH="amd64"
    GOHOSTOS="darwin"
    GOINSECURE=""
    GOMODCACHE="/Users/fsj/go/pkg/mod"
    GONOPROXY=""
    GONOSUMDB=""
    GOOS="darwin"
    GOPATH="/Users/fsj/go"
    GOPRIVATE=""
    GOPROXY="https://goproxy.cn,direct"
    GOROOT="/usr/local/go"
    GOSUMDB="sum.golang.org"
    GOTMPDIR=""
    GOTOOLDIR="/usr/local/go/pkg/tool/darwin_amd64"
    GCCGO="gccgo"
    AR="ar"
    CC="clang"
    CXX="clang++"
    CGO_ENABLED="1"
    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 -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/2w/tt1p_4td3yq9xlbl7c2t4jn00000gn/T/go-build597889543=/tmp/go-build -gno-record-gcc-switches -fno-common"
    

    查看帮助信息

    $ go help mod
    Go mod provides access to operations on modules.
    
    Note that support for modules is built into all the go commands,
    not just 'go mod'. For example, day-to-day adding, removing, upgrading,
    and downgrading of dependencies should be done using 'go get'.
    See 'go help modules' for an overview of module functionality.
    
    Usage:
    
    	go mod <command> [arguments]
    
    The commands are:
    
    	download    download modules to local cache (下载依赖的module到本地cache))
    	edit        edit go.mod from tools or scripts (编辑go.mod文件)
    	graph       print module requirement graph (打印模块依赖图))
    	init        initialize new module in current directory (再当前文件夹下初始化一个新的module, 创建go.mod文件))
    	tidy        add missing and remove unused modules (增加丢失的module,去掉未用的module)
    	vendor      make vendored copy of dependencies (将依赖复制到vendor下)
    	verify      verify dependencies have expected content (校验依赖)
    	why         explain why packages or modules are needed (解释为什么需要依赖)
    
    Use "go help mod <command>" for more information about a command.
    

    go get 直接下载需要的包。或者go mod download可以下载所需要的依赖。
    注意依赖并不是下载到$GOPATH中,而是$GOPATH/pkg/mod中,多个项目可以共享缓存的module。
    里面的mod目录会使用@x.x.x的格式区分不同版本的代码

    $ cat go.mod 
    module my-go-proj
    
    go 1.13
    
    require (
    	github.com/go-sql-driver/mysql v1.5.0
    	upper.io/db.v3 v3.7.1+incompatible
    )
    
    $ ll /Users/fsj/go/pkg/mod/github.com/go-sql-driver/  
    total 0
    dr-x------  45 fsj  staff   1.5K 12 30 14:45 mysql@v1.5.0
    

    参考

    作者:kakashis
    联系方式:fengshenjiev[AT]gmail.com
    本文版权归作者所有,欢迎转载,演绎或用于商业目的,但是必须说明本文出处(包含链接)。

  • 相关阅读:
    洛谷 P2915 [USACO08NOV]奶牛混合起来Mixed Up Cows 题解
    洛谷 P2687 [USACO4.3]逢低吸纳Buy Low, Buy Lower/ACWing 314 低买 题解
    7、Python异常
    必须要调整心态,积极起来,不能再偷懒
    5、Python函数
    10、Python数据库支持
    8、Python方法、属性、迭代器
    9、Python模块和标准库
    6、Python抽象的类
    UDP Linux编程(客户端&服务器端)
  • 原文地址:https://www.cnblogs.com/kakashiS/p/14293218.html
Copyright © 2011-2022 走看看