• go mod代理和小技巧


    • 代理 go mod的代理比较出名的有阿里的goproxy,可以基于它搭建一个私有的代理,管理内部的私有代码,而且微软提供了一个公共的代理,我们可以直接使用 Linux export GOPROXY="https://mirrors.aliyun.com/goproxy/" export GO111MODULE=on Windows 设置GOPROXY和GO111MODULE环境变量 这样google下的包可以顺利下载了,速度还挺快的。
    • 小技巧

    逃离GOPATH

    毕竟有时候一个项目的代码可能使用多种语言,按照以前的方式,就非得把项目的代码都放在gopath下了,让我这种强迫症的人,很不爽。 现在发现使用go mod时,可以不用把代码放到GOPATH下面了,真是方便了许多。

    人性化提示

    有时候我们打开了一篇较旧的文章,使用了老的命令,这时候 go mod也会给出新命令的提示,比如 <br /> $ go mod -fmt<br /> go: go mod -fmt is now go mod edit -fmt</p><p>$ go mod -init -module example/test<br /> go: go mod -init is now go mod init<br /> 意思是说,go mod -fmt 现在是 go mod edit -fmt, go mod -init 现在是 go mod init,常见的命令可以参考这篇文章

    指定版本

    地址后面加"@",可以是commit、分支、tag等 go get github.com/someone/some_module@af044c0995fe

    版本管理

    代码里提交go.mod和go.sum文件,其他开发人员执行 go mod download

    import路径

    使用go mod后,import路径会以go mod init时的mod名称为该项目的根目录,比如:

    go mod init test

    在goland中在工程目录,mod名会以[]标出来,比如上图左侧的'test',

    导入mod内部的代码则是以go.mod所在目录为根目录,且以mod名开始,而不是项目的目录,如上图右侧

    依赖整理

    go mod tidy

    GoLand配置

    1、新建项目 (更新,请使用阿里云的goproxy)

    2、旧项目

    3、常见错误

    go: modules disabled inside GOPATH/src by GO111MODULE=auto; see 'go help modules'

    go mod需要在GOPATH外

    go mod init: go.mod already exists

    go.mod文件已经存在

    zip: not a valid zip file

    代理服务器缓存的zip 错误,可以临时关闭代理,go get的时候加上GOPROXY=''即可,即  GOPROXY=''   go get   xxx/pkg

  • 相关阅读:
    C#逻辑运算符
    C#:采用TuesPechkin生成Pdf
    C# 发布时出现:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误
    C# winform在窗体中动态添加按钮
    C# winform滚动字幕效果
    C# Winform操作注册表实现窗体的定位记忆功能
    C#提取类型的所有方法和参数
    .NET FCL(框架类库)名称空间说明
    .NET框架通用语言运行时(CLR)的执行模型
    坚持学习,高效率才能更有水平
  • 原文地址:https://www.cnblogs.com/xdao/p/go_mod.html
Copyright © 2020-2023  润新知