亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go多模塊依賴管理

Go多模塊依賴管理

Go
MMMHUHU 2022-11-28 14:50:31
我是 goLang 的新手。我正在嘗試開發一個多模塊項目。我的工作區文件夾就像root   1-Authz   1.1-Main.go   1.2-go.mod (contains:module com.mbt.authz)   1.3-go.sum   2-Product   2.1-Main.go   2.2-go.mod  (contains:module com.mbt.product)   2.3-go.sum   3-go.work   4-GoMultiModule.code-workspace   go.work folder is like    go 1.18   use(    ./Authz    ./Product   )兩個模塊都可以單獨運行。但是我想在 Authz 中定義一個方法并從 Product 中調用該函數。我該怎么辦,如何從我的本地工作區向 Product 模塊添加依賴項?
查看完整描述

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/


查看完整回答
反對 回復 2022-11-28
?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

對于測試,只需添加到Product/main.go引用的導入Authz

import com/mbt/authz/aPackage

這假定您在不同于main, in Authzproject 的包中定義了一個方法。


查看完整回答
反對 回復 2022-11-28
  • 2 回答
  • 0 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號