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


本文摘自网络,作者,侵删。

以前的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项目中包的管理

相关阅读 >>

Golang pprof 性能分析工具

分享一个Go语言采坑:闭包共享变量问题

Golang判断interface为nil

Go学习笔记(二):Go语言工作区介绍

Golang 中const是什么

Golang 中的高级循环

解决Golang结构体json的时间格式化

Golang usr/local/Go/pkg/tool/linux_amd64/link: fingerprint mismatch 解决办法

pprof最全功能

Go 语言规范 - 编码风格篇

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...