登录
首页 >  Golang >  Go问答

无法从并行目录同步 Go 包

来源:stackoverflow

时间:2024-03-17 08:30:28 322浏览 收藏

Go 中无法从并行目录同步包的问题可能源于使用模块。模块的只读缓存特性意味着 Go 不会在 GOPATH 中搜索依赖项。要解决此问题,可以使用 replace 指令,它可以指向本地目录中其他依赖项的位置。

问题内容

这在 go 1.14.2 中应该是一个简单的问题,但由于某种原因事实并非如此。我有以下项目布局...

go
└── src
│   └── github.com
│   │   └── folder
│   │   │   ├── my-first-project
│   │   │   └── my-second-project

my-second-project 的主文件中,我的导入语句包含常用的库,加上...

import (
    // standard libraries
    "github.com/folder/my-first-project/module/sub-module"
)

当我尝试同步以便导入该子模块时,go 会尝试从 github 下载它,而不是在本地文件夹中查找,这意味着它无法找到该项目。但是,我的 gopath 设置为 go 文件夹,并且 my-second-project 中的 go.mod 文件以...开头...

module github.com/folder/my-second_project

...所以我无法弄清楚我可能会错过什么,从而使导入变得如此困难。我正在使用完全合格的参考资料,但由于某种原因,我无法让两个项目并存并相互交谈。如果有任何建议,我将不胜感激。


解决方案


使用模块时,Go 不会在 GOPATH 中查找。模块使用模块的只读缓存,因此无需在每次构建时下载它们。

如果您正在开发尚未发布的模块,则可以使用 replace 指令来指向其他依赖项所在的本地目录。

有关何时使用 replace 的一些其他信息,请参阅 How to declare golang dependency versions best in go.mod?

今天关于《无法从并行目录同步 Go 包》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>