go - 本地包和目录结构
问题描述
这是我的 Go 项目的目录结构:
my_project
|
main.go
- my_package
|
- my_package.go
在 main.go 这工作正常:
导入(“my_package/my_package”)
但是当我创建一个新文件夹“examples”来测试包的一些新功能时,tha main.go 无法按预期导入包:
my_project
|
main.go
- my_package
|
- my_package.go
- examples
|
- main.go
从父目录导入包:
导入(“../my_package/my_package”)
尝试运行 examples/main.go 不起作用:
cd examples
go run main.go
build _/mypath/my_project/my_package: cannot find module for path _/mypath/my_project/my_package
我不应该从父目录导入本地包吗?
是否总是必须将包模块放在 main.go 的子文件夹中?
有没有简单明了的方法来组织 main/test/debug go 程序与本地包的共享依赖项?
我已经阅读了golang 模块和本地包,也许我应该使用绝对路径来导入包,但我不喜欢这个选项,因为这是一个要加载到存储库的代码,所以绝对路径不起作用其他实现。
解决方案
根据 stackoverflow masters 进行操作的方法(它确实工作得很好)是导入一个假存储库,然后用本地重定向替换它,如如何在另一个模块中使用“GOPATH”之外的模块?
在 main.go 中:
import (
my_package "my_fake_repository/myself/my_project/my_package"
)
在 go.mod 中:
require my_fake_repository/myself/my_project/my_package v0.0.0
replace my_fake_repository/myself/my_project/my_package => ../my_package
有用!多谢!
推荐阅读
- jquery - Jquery Sortable table,只会对一个日期列进行排序
- docker - RabbitMQ 兔子在 Kubernetes 上找不到彼此
- powerapps - 在带有 % 和 _ 的 powerapp 中使用 LIKE
- asp.net-web-api2 - 使用 web api2 发布 nativescript 表单数据时出错?
- javascript - 如何创建 Outlook 插件以显示已发送电子邮件操作项的已读回执?
- java - JNI_CreateJavaVM 函数方法不起作用,无法调试
- c# - 我已经使用 MVC 数据模型在 mvc 中获取数据。但是现在我无法编辑数据,尽管我已经创建了编辑视图并在控制器中进行了解析
- html - 一旦属性为真,就禁用打字稿中的滚动
- ios - 如何在iOS工具(越狱)中使用+[SBLockScreenManager sharedInstance]?
- c# - 在 C# 中显示外部 dll XML 注释