我希望我的程序使用特定版本的client-go,以便它與目標集群兼容。但是以下語法:import ( "log" "os" "path/filepath" clientcmd "k8s.io/[email protected]/tools/clientcmd")我用它來構建我的客戶端配置,如下所示: config, err := clientcmd.BuildConfigFromFlags("", kubeconfig)失敗并顯示此錯誤消息:? go run main.gopackage main imports k8s.io/[email protected]/tools/clientcmd: 只能使用 path@version 語法和 'go get'我應該如何陳述特定的版本化輸入?
1 回答

開滿天機
TA貢獻1786條經驗 獲得超13個贊
將您的導入更改為
import "k8s.io/client-go/tools/clientcmd"
并執行命令:
go get k8s.io/[email protected]
使用的版本記錄在go.mod文件中。以上go get內容將go.mod根據給定的版本進行更改。請注意,您也可以go.mod手動編輯(但最好將其留給 go 工具)。如果您使用的版本為開頭或更高版本,則只需修改導入路徑v2,在這種情況下,主要版本必須是后綴,例如
import "k8s.io/client-go/tools/clientcmd/v2"
筆記:
在上述go get命令之后,go.mod文件將被修改為包含require如下指令:
k8s.io/client-go v0.0.0-20190708094436-77c08c6b86df // indirect
這樣做的原因是因為 go 模塊需要語義版本控制,而 kubernetes-1.12.10不是 semver2 兼容的版本號。盡管如此,go 工具仍會確定此版本標記了77c08c6b86df0af19f718d9a57620c4e9b811d48commitgo.mod ,并在文件中使用它。
- 1 回答
- 0 關注
- 125 瀏覽
添加回答
舉報
0/150
提交
取消