go - 如何将内部包与 go 模块一起使用?
问题描述
我在我的项目中使用 go 模块。我在内部文件夹中共享了代码。
.
├── README.md
├── internal
│ └── shared
│ ├── request.go
│ └── request_test.go
└── web
├── README.md
└── go
└── src
└── webservice
├── go.mod
├── go.sum
└── main.go
使用 go 模块时,我无法从 web 服务访问内部/共享。我收到以下错误:
package internal/shared is not in GOROOT (/usr/local/go/src/internal/shared)
在 main.go 从 web 服务导入时:
import "internal/shared"
注意:我正在尝试与上面未列出的另一个 mod 共享内部/共享。
如何解决这个问题?
解决方案
您的go.mod
内部web/go/src/webservice
表明此包位于与您的internal/shared
包不同的模块中。当您将您的go.mod
和移动go.sum
到整个项目的根目录时,它应该可以工作。然后web/go/src/webservice
和internal/shared
包将在一个go module
中。
这对我有用:
.
├── go.mod
├── go.sum
├── internal
│ └── shared
│ └── request.go
│
└── web
└── go
└── src
└── webservice
└── main.go
并且在将包go-module
导入.internal/shared
main.go
所以,在你main.go
的导入里面应该看起来像import "$your-go-module/internal/shared"
更多关于内部包的信息在这里
推荐阅读
- android - BLE:如何发送写请求而不是写命令?
- reactjs - redux 的类型 / 像装饰器一样连接
- asp.net-mvc - 从外部类返回视图
- javascript - 在具有特定键的特定值的数组中查找对象的索引
- wix - 您如何在每次启动时检测已安装的产品版本?
- facebook - Facebook JS SDK 和分享按钮错误
- intellij-idea - IntelliJ Ultimate 无法从 SAP PI WSDL 文件生成代码
- pandas - 熊猫分组并从列表的行转换为大文件的列(无转置)
- jsp - 通过自定义标签从 JSP 获取应用程序字段
- autodesk-forge - 有没有办法知道 Forge API 中文件夹何时有子文件夹?