Golang Go语言中的包管理和GOPATH设置问题
GOPATH 设置多个 go get 默认会放第一个 那我自己的项目目录如下
project
src
print
print.go
main.go
pkg
bin
我只是想自己工程下 引用自己的包 有必要设置 GOPATH 么 这是 GO 的设计哲学理念? 听说建 vendor 目录会优先扫描?
Go 版本 1.9.2
Golang Go语言中的包管理和GOPATH设置问题
更多关于Golang Go语言中的包管理和GOPATH设置问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
用包管理器,glide 和 dep 之类的
glide
官网文档貌似建议这样做:
$GOPATH
/src
/project
/vendor
/pkg
/bin
我把自己的包放在 src 下;第三方包用 dep 管理,放在 vendor 下
没有 gopath,即使 import 自己写的包,也没办法找到吧
是的,输入命令 go help gopath 可查看详细解释
在Golang(Go语言)中,包管理和GOPATH设置是初学者常遇到的问题。下面是一些关于这两个方面的专业解答:
Go语言的包管理主要通过go mod
(模块)来实现,这是从Go 1.11版本开始引入的新特性。使用模块可以方便地管理项目的依赖关系,并避免版本冲突。每个Go模块都有一个go.mod
文件,其中记录了模块的依赖关系及其版本。
关于GOPATH的设置,在Go 1.11之前,GOPATH是Go语言工作区的主要环境变量,用于指定工作目录、包存储位置等。但在模块支持引入后,GOPATH的重要性逐渐降低。不过,即使在使用模块的项目中,GOPATH仍然可以作为一个辅助的目录存在,用于存放一些全局的包和工具。
如果你正在使用Go 1.11或更高版本,并且希望利用模块功能来管理你的项目,那么你可以通过设置环境变量GO111MODULE=on
来强制启用模块支持。这样,Go工具链就会忽略GOPATH,并基于go.mod
文件来解析和管理依赖。
另外,值得注意的是,Go语言的包名应该简洁明了,且小写字母开头,以符合Go语言的命名规范。同时,包的导入路径应该尽量唯一,以避免与其他包产生冲突。
总的来说,Go语言的包管理和GOPATH设置并不复杂,只要理解了模块的概念和GOPATH的作用,就可以轻松地管理你的Go项目。