Golang Go语言中的包管理和GOPATH设置问题

发布于 1周前 作者 nodeper 来自 Go语言

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

7 回复

用 govendor

更多关于Golang Go语言中的包管理和GOPATH设置问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


用包管理器,glide 和 dep 之类的

官网文档貌似建议这样做:

$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项目。

回到顶部