构建命令行参数:无法加载本地软件包:找不到提供软件包的模块

时间:2019-07-22 12:35:41

标签: go go-modules go-micro

我无法使用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

2 个答案:

答案 0 :(得分:0)

go.mod的{​​{1}}文件的外观如何?

进口应始终是绝对的,例如:

repoA

然后,在import "github.com/Himanshu/repoB" 的{​​{1}}文件中,您可以添加一个repoA指令以将“ github.com/Himanshu/repoB”指向本地路径(可以是相对路径)。

请务必阅读Modules wikiofficial blog post on modules

的相关部分

答案 1 :(得分:0)

做完几件事后,我的IntelliJ解决了问题。

  1. 初始化项目中的go模块,然后
  2. 使用绝对路径引用软件包。

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

如果您正在使用新的Intellij Ultimate,请在项目设置Alt + Ctrl + S的语言和框架-> Go-> Go Modules下启用go模块