前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Go系列:Go项目中包的管理

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

作者头像
三猫
发布于 2020-11-19 09:43:40
发布于 2020-11-19 09:43:40
1.1K00
代码可运行
举报
运行总次数:0
代码可运行

以前的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之外的任意目录新建项目文件夹

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
go mod init test

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

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

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习养成记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[Golang]包管理
本文是本人在探索 Go 最新的包管理 Go Modules 的一些总结,希望能够更深入了解 Go 最新的包管理方式,以及在实际环境中将它很好的使用起来。
别打名名
2020/07/28
1.7K0
浅谈GoPath和Go Modules包管理
从v1.5开始开始引入vendor模式,如果项目目录下有vendor目录,那么go工具链会优先使用vendor内的包进行编译、测试等
仙人技术
2021/08/31
1.2K0
浅谈GoPath和Go Modules包管理
Go 开发常用操作技巧--模块管理
Go 依赖管理经历了 3 个阶段,GOPATH、Go Vendor、Go Module。
微客鸟窝
2023/01/09
5620
Go 开发常用操作技巧--模块管理
Go Modules 终极入门
Go modules 是 Go 语言中正式官宣的项目依赖解决方案,Go modules(前身为vgo)于 Go1.11 正式发布,在 Go1.14 已经准备好,并且可以用在生产上(ready for production)了,Go 官方也鼓励所有用户从其他依赖项管理工具迁移到 Go modules。
madneal
2020/03/10
1.9K0
Go Modules 终极入门
GO -mod和​GO111MODULE设置的那些事
意味着,忽略vendor文件夹,且对代码引用的(import)库列表自动更新到go.mod文件中,适用于带网络的研发环境调试编译
粲然忧生
2024/06/06
1.1K0
GO -mod和​GO111MODULE设置的那些事
Go Module详细使用教程,包管理不在难
go modules是 golang 1.11引入的新特性。模块是相关Go包的集合。modules是源代码交换和版本控制的单元。go命令直接支持使用modules,包括记录和解析对其他模块的依赖性。modules替换旧的基于GOPATH的方法来指定在给定构建中使用哪些源文件。
公号:咻咻ing
2020/03/04
20.5K0
使用 Go Modules 管理依赖
Go Modules 是 Go 语言的一种依赖管理方式,该 feature 是在 Go 1.11 版本中出现的,由于最近在做的项目中,团队都开始使用 go module 来替代以前的 Godep,Kubernetes 也从 v1.15 开始采用 go module 来进行包管理,所以有必要了解一下 go module。go module 相比于原来的 Godep,go module 在打包、编译等多个环节上有着明显的速度优势,并且能够在任意操作系统上方便的复现依赖包,更重要的是 go module 本身的设计使得自身被其他项目引用变得更加容易,这也是 Kubernetes 项目向框架化演进的又一个重要体现。
田飞雨
2019/12/20
1K0
Go项目管理
包被导入时,会执行init函数,优先于main函数,不能有参数和返回值,建议少用,仅用于全局变量初始化,或者单元测试初始化一些东西
用户9022575
2021/10/01
1K0
Go | 浅谈包管理模式
go的编译器会在 $GOPATH/src 下面寻找对应的模块,src 下的每一个目录都可以对应一个模块,目录中的目录也可以是一个模块
甜点cc
2022/11/16
5240
Go | 浅谈包管理模式
go modules:使用 mod 管理项目依赖包,通过vendor实现一键分发编译包
在go语言1.11版本之前,没有modules机制,所有软件包都在安装在$GOPATH/src目录下。不同项目如果引用了同一个软件包的不同版本,就会造成编译麻烦。修改$GOPATH变量是当时一种比较简单的解决方案。
LIYI
2020/03/25
6.5K0
golang开发中包的使用
golang包的使用依赖一个重要的环境变量:GOPATH,无论是自己的代码还是第三方代码,都以GOPATH作为工作目录和一套完整的工程目录规则。GOPATH目录约定有三个子目录,主要用于
极客开发者
2022/01/18
7880
Go Module Notes
Go 1.11 版本包含了两个最重要的 feature 就是 module 和 web assembly。Golang官方自go1.11版本初步引入,go1.12版本正式支持go Modules官方包依赖管理工具。
筱竼
2022/08/18
1.4K0
Go Module Notes
go包管理速通,一篇文章就够了
最近在看一些go语言相关的书,发现了一个有意思的事情:其中一本书最新印刷的版本是2017年3月,而golang包管理的后起之秀 gomodule伴随go1.11于2018年8月诞生——因此,书里没有。
白泽z
2022/08/18
4960
go包管理速通,一篇文章就够了
GO111MODULE 是个啥?
首先,让我们谈谈 GOPATH。当 Go 在 2009 年首次推出时,它并没有随包管理器一起提供。取而代之的是 go get,通过使用它们的导入路径来获取所有源并将其存储在 $GOPATH/src 中。没有版本控制并且『master』分支表示该软件包的稳定版本。
王小明_HIT
2021/07/05
2.1K0
GO 依赖管理工具go Modules(官方推荐)
以前写过一篇关于go管理依赖包工具 dep的文章,当时认为dep将会成为官方依赖工具,现在看来是自己图样图斯内幕破了,正如官方一直提到dep是“official experiment”官方实验项目的那样,随着go modules 在go1.11版推出,go1.12版功能不断改进,再到go1.13版完善优化,正式扶正。预计dep将来也只能定格在“official experiment”了。
孤烟
2020/09/27
1.7K1
GoPath模式和GoMoudle模式的相爱相杀
相信看我文章的文章的童鞋,golang版本已经是1.3版本以上。如果你的版本还停留在1.3以下,那这篇文章可以做为你的提升之法。
happlyfox
2021/03/17
6490
Golang学习笔记,从入门到精通,持续记录
Golang官网:https://go.dev/、Golang下载:https://go.dev/、Golang学习文档:https://go.dev/doc/
房东的狗丶
2023/02/17
1.3K0
Go mod包依赖管理工具使用详解
对比上面几点: 目前做的最好的也就 maven了,gradle没有使用过,不知道。
OwenZhang
2021/12/08
9780
Go mod包依赖管理工具使用详解
Go 语言各个版本支持 Go Modules 的演进史
Go 语言在 v1.11 开始支持 Modules,本文我们介绍一下 Go 语言各个版本支持 Go Modules 的演进史。
frank.
2023/03/13
1K0
Go 语言各个版本支持 Go Modules 的演进史
石桥码农:如何在本地基于 nideshop 架设一个微信小程序商城?
本文主要基于 nideshop 和 moshopserver 构建,在本地构建,mysql可以用本地的,也可以用云上的。这个项目的意义,主要在于自己学习和研究小程序商城项目的开发。
LIYI
2020/02/13
2.4K0
石桥码农:如何在本地基于 nideshop 架设一个微信小程序商城?
相关推荐
[Golang]包管理
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文