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 Authz
project 的包中定義了一個方法。
- 2 回答
- 0 關注
- 187 瀏覽
添加回答
舉報