Go系列:Go项目中包的管理

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

以前的go 项目需要放在GOPATH中src中编译执行,在golang1.11之后引入了go modules特性。在go1.11之后的版本可以使用go modules管理go项目中包的依赖,也使项目脱离了GOPATH,可以放置在任意目录。


Go module的官方定义:

模块是相关Go包的集合。modules是源代码交换和版本控制的单元。go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。


开启go module:

  • go 1.11 或更高

  • export GO111MODULE=on (设置环境变量)



使用go mod命令给项目添加go module:

  • 在GOPATH之外的任意目录新建项目文件夹

    打开命令终端, 在项目文件夹下执行go mod init <module name>

    go mod init test

    会在项目中创建go.mod文件,其中会记录所有的项目第三方包引用包括版本。go toolchain会自动管理go.mod文件,不需要手动修改。例如:在项目中使用go get 或go build命令时,会把在项目中使用的包自动添加到go.mod中。


  • go.mod中对应的包会下载到路径$GOPATH/pkg/mod中

  • 打开一个已存在的go 项目,在有go.mod的目录下执行go build会自动下载go.mod中的包

    pro

  • go env可以查看go的环境变量,例如 GOPATH

  • 下载go的包时可能需要设置代理:

    go env -w GOPROXY=https://goproxy.cn,direct



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

本文来自:51CTO博客

感谢作者:mob604756f3ed23

查看原文:Go系列:Go项目中包的管理

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

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