GO问答之为什么项目要在 GOPATH/src 目录下

Go语言项目通常需要放在GOPATH/src目录下,因为Go的包搜索机制依赖于此。虽然这可能导致项目和库混杂,但可以通过设置多个GOPATH路径来区分。文章提到了包管理工具如dep、vgo、godep,以及Go 1.11引入的内置go mod模块管理。使用go mod可以在任意目录创建项目,并通过go build等命令管理依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题

beego的bee工具为什么强制新建项目在GOPATH/src目录下?

每次升级bee工具都要先改其源码使之可以在任意目录内生成项目。实在不喜欢把第三方库和自己的所有项目放在一个目录下,太乱了。顺便问一下go为什么建议把所有项目源码都放在gopath/src目录内?

回答

为什么?

因为 GO 的包搜索是从 GOPATH 和 GOROOT 路径下搜索,源码必须要放在 GOROOT 或 GOPATH 的 src 目录下才能找到。但把源码和包放在一起,对于很多人来说确实不太很习惯,有一种做法,通过在 GOPATH 中设置两个路径,go get 下载的包默认放在 GOPATH 设置的第一个路径下。比如,GOPATH 设置如下:

export GOPATH=/Users/polo/go/:/Users/polo/Work/go
复制代码

如此就可以把工作区设在 /Users/polo/Work/go/src,而安装包放在 /Users/polo/go/src。

其实我觉得,直接放在一起也挺好的,看源码的时候还方便点。

除此之外,GO 其实也提供了一些包依赖管理工具,但都并非 GO 自带。简单举几个例子,如下:

  • dep
  • vgo
  • godep

等等。

我在网上找了一篇2017年的文章,描述了 GO 包管理工具的一些历史和当时的情况,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值