2 回答
TA贡献1995条经验 获得超2个赞
这是许多新的 golang 开发人员的常见问题解答。
在 golang 中,Module 和 Package 不是一回事。一个模块可能包含一个或多个包。模块用go mod init [modulename]命令初始化。此命令将创建一个 go.mod 文件。包可以简单地在代码中定义package [packagename]。可以导入同一模块中的包(我们称之为本地包)import "[packagename] [modulename]/[pathofpackage]"
在你的情况下,如果你不想创建不同的模块,你可以删除 Authz 和 Products 文件夹中的 go.mod 和 go.sum 文件。然后在根文件夹中,运行go mod init root. 然后在产品代码中导入 auth 包,例如import (authz "root/authz")(authz 是 Authz 代码中指定的包名称)
如果 authz 必须是不同的模块,它将被视为不同的模块,不能像本地包一样直接导入。
要在 Authz 文件夹中导入本地模块,您需要像这样编辑 products 文件夹中的 go.mod 文件:
module somemodulename
go 1.16
require (
authzmodulename v0.0.0
)
replace authzmodulename v0.0.0 => ../Authz/
TA贡献1895条经验 获得超7个赞
对于测试,只需添加到Product/main.go引用的导入Authz:
import com/mbt/authz/aPackage
这假定您在不同于main, in Authzproject 的包中定义了一个方法。
- 2 回答
- 0 关注
- 239 浏览
添加回答
举报
