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

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

exclude 指令如何在 go.mod 文件中工作?

exclude 指令如何在 go.mod 文件中工作?

Go
慕斯709654 2023-05-15 09:48:26
新的 Go 版本 1.11 引入了很棒的模塊概念。在文檔中它說有四個指令可以在一個go.mod文件中使用:module, require, exclude, replace.它還解釋說:exclude 和 replace 指令僅在當前(“主”)模塊上運行。構建主模塊時,將忽略除主模塊之外的模塊中的排除和替換指令。因此,replace 和 exclude 語句允許主模塊完全控制自己的構建,而無需完全控制依賴項。但我仍然不明白該exclude指令是如何工作的。有人可以向我解釋該exclude指令是如何工作的嗎?如果可能的話,請舉例說明何時使用它?
查看完整描述

2 回答

?
阿晨1998

TA貢獻2037條經驗 獲得超6個贊

這是一個半假設的假設示例:


go.mod

module github.com/example/project


require (

    github.com/SermoDigital/jose v0.0.0-20180104203859-803625baeddc

    github.com/google/uuid v1.1.0

)


exclude github.com/SermoDigital/jose v0.9.1


replace github.com/google/uuid v1.1.0 => git.coolaj86.com/coolaj86/uuid.go v1.1.1

排除

對于包github.com/SermoDigital/jose,它有一個正確的 git 標簽v0.9.1,但當前版本是v1.1,這不是一個正確的 git 標簽(缺少“補丁”版本)。

通過排除版本正確(但不工作)的代碼,它會導致從中獲取 go mod master(版本不正確,但具有工作代碼)。

代替

同樣(并且確實是假設的),如果我有一個補丁github.com/google/uuid,我可以創建一個分支并使用它replace來獲取我自己的版本,同時等待上游版本接受(或不接受)我的補丁。


查看完整回答
反對 回復 2023-05-15
?
臨摹微笑

TA貢獻1982條經驗 獲得超2個贊

閱讀整個模塊文檔。在您的報價文件的下方,

...構建中的頂級模塊可以排除特定版本的依賴項或用不同的代碼替換其他模塊。


查看完整回答
反對 回復 2023-05-15
  • 2 回答
  • 0 關注
  • 189 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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