go mod

cdz620 · · 1861 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

[TOC]

docs

go mod

migrations: enable go modules

主要有以下两种方式:

  1. GO111MODULE=on
  2. 把工程移出$GOPATH/src
    1. 创建go.mod 文件: go mod init github.com/cdz620/xxx
    2. 编译:go build
    3. vendor —> mod: go mod -vendor 复制vendor下的目录到$GOPATH/pkg/mod

common operations

  • init: go mod init github.com/cdz620/tutorial
  • add a dependency:
    • 代码中直接引用, 编译时自动下载
    • go get github.com/gorilla/mux@latest
    • go mod -require='bitbucket.org/bigwhite/c@>=v1.1.0'
  • upgrade a dependency:
    • go get github.com/gorilla/mux@latest拉取最新的release版本
    • go get github.com/gorilla/mux@master 拉取最新的master的代码,不一定是就不是人release版本,与上个命令不同
    • -u: 会更新依赖的子模块
      • go get -u
      • go get -u=patch xxx
  • delete unused dependencies: go mod tidy
  • replace
    • 场景:将远方的包克隆到本地 ,修改并测试程序运行,可以通过添加replace,不修改import path。可结合gohack一起使用。
    • replace example.com/some/dependency => example.com/some/dependency v1.2.3

release modules (v2 or higher)

using with vendor

  • go mod vendor: 会在当前目录下创建vendor目录,给老版本的go提供兼容性
  • go build -mod=vendor:编译时指定使用vendor目录的依赖

four directives in go.mod

  • module
  • require
  • replace: can only be uesd in main module
  • exclude: can only be uesd in main module

module query

  • go mod -require='bitbucket.org/bigwhite/c@>=v1.1.0'
  • go get github.com/gorilla/mux@latest

build list

  • go list -m all
  • go list -m -json all
  • go list -m -versions golang.org/x/text

go build with modules

  • go build -mod=vendor main.go前提是当前的仓库目录在$GOPATH/src下

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:cdz620

查看原文:go mod

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1861 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传