2

我无法使用 go mod 加载本地包。我有单独的 go.mod 文件用于 repoA 和 repoB。我在任何地方都找不到解决方案。操作系统是windows。

$> go version
go version go1.12.7 windows/amd64

当我从repoA运行主文件时,我有两个带有存储库的模块。它会尝试找到repoB的模块/包,然后它会抛出一个错误说

找不到提供包的模块

我的回购结构:-

����repoA
�   ����proto
�   �   ����system
�   ����sauth
�   ����shandle
�   ����smodel
�   ����sresponse
����repoB
    ����common
    ����config
    ����proto
        ����account
        ����auth
        ����session
4

2 回答 2

0

在做了几件事之后,我的 IntelliJ 解决了这个问题。

  1. 初始化项目中的go模块并
  2. 使用绝对路径引用包。

我有 2 个文件夹 -> repoA 和 repoB,它们位于文件夹 c:\goprograms 中。运行go mod init examplegoprogram.com/app。现在,我在 goprograms 文件夹中看到 go.mod 文件的内容module examplegoprogram.com/app。在 repoA 中,您现在可以将 repoB 称为import "examplegoprogram.com/app/repoB"

如果您使用的是新的 Intellij Ultimate,请在 Project settings Alt + Ctrl + SLanguages & Frameworks -> Go -> Go Modules下启用 go modules

于 2020-01-07T21:47:03.273 回答
0

go.mod文件怎么repoA看?

导入应始终是绝对的,例如:

import "github.com/Himanshu/repoB"

然后,在repoA'sgo.mod文件中,您可以添加一个replace指令以将“github.com/Himanshu/repoB”指向本地路径(可能是相对路径)。

请务必阅读Modules wiki的相关部分和有关模块的官方博客文章

于 2019-07-22T13:43:59.590 回答