zoukankan      html  css  js  c++  java
  • go module包管理学习笔记

    go module仓库代理(阿里云):GOPROXY=https://mirrors.aliyun.com/goproxy/

    1.设置模块支持

    go 1.11 有了对模块的实验性支持,大部分的子命令都知道如何处理一个模块,比如 run build install get list mod 子命令,第三方工具可能会支持的晚一些。到 go 1.12 会删除对 GOPATH 的支持,go get 命令也会变成只能获取模块,不能像现在这样直接获取一个裸包。

    可以用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:offonauto,默认值是 auto

    • GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。
    • GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。
    • GO111MODULE=auto 在 $GOPATH/src 外面且根目录有 go.mod 文件时,开启模块支持。

    在使用模块的时候,GOPATH 是无意义的,不过它还是会把下载的依赖储存在 $GOPATH/pkg/mod 中,也会把 go install 的结果放在 $GOPATH/bin 中。

    2.初始化模块

    go mod init [module name]

    我们运行下 go mod init test命令试试,目录下生成了一个go.mod的文件,内容如下:

    module test
    
    go 1.12

    比如我要安装beego框架,运行下命令:go get github.com/astaxie/beego
    文件内容发生了变化:

    module test
    
    go 1.12
    
    require (
        github.com/astaxie/beego v1.12.0 // indirect
        github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect
    )

    说明go get对文件产生了影响,把安装的包引入到了go.mod文件里。

    其他命令说明:

    go mod download :安装mod的模块到本地缓存
    go mod vendor:vendor版本的解决方案,将依赖复制到vendor下面。

    go mod tidy:移除未用的模块,以及添加缺失的模块。

    go mod verify:验证所有模块是否正确。

    以前都是下到$GOPATH/src下再引用模块,感觉有点OUT啊,这种方法好多了...

  • 相关阅读:
    idea最新注册码
    pycharm中可以运行脚本(只在控制台运行,Debugger不运行,设置的断点没用)但是不能debug脚本
    VSCode 云同步扩展设置 Settings Sync 插件
    gist.github.com 无法访问解决办法,亲测永远有效!
    C# HttpWebRequest httpclient
    C# 图片处理
    powerdesigner逆向工程生成PDM时的列注释
    Ocelot网关治理
    Consul服务注册与发现
    CentOS 使用DVD1_DVD2作为本地离线的更新源
  • 原文地址:https://www.cnblogs.com/tudou1223/p/11447675.html
Copyright © 2011-2022 走看看