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

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

從私有存儲庫獲取依賴項的正確方法

從私有存儲庫獲取依賴項的正確方法

Go
qq_花開花謝_0 2023-08-14 17:23:27
我在????克隆鏈接上有私人bitbucket倉庫http://localhost:7990 http://localhost:7990/scm/gom/bar.gitgo.mod好像:module mod.org/bargo 1.13遠程存儲庫中可用的參考:git ls-remote  http://localhost:7990/scm/gom/bar.git From http://localhost:7990/scm/gom/bar.gitd456de4f12785b26ac27ba08cffb76687d1287c8        HEADd456de4f12785b26ac27ba08cffb76687d1287c8        refs/heads/masterf948bd47a22c5fb9abed5bff468a10fc24f67483        refs/tags/v1.0.0我.gitconfig改為[url "http://localhost:7990/scm/gom"]      insteadOf = https://mod.org并試圖通過 獲取模塊name,得到 no such host錯誤:go get -v mod.org/bargo get lmod.org/bar: unrecognized import path "lmod.org/bar" (https fetch: Get https://lmod.org/bar?go-get=1: dial tcp: lookup lmod.org: no such host)當我添加擴展名時.gitgo get -v mod.org/bar.git go: finding lmod.org/bar.git v1.0.0go: downloading lmod.org/bar.git v1.0.0verifying lmod.org/[email protected]: lmod.org/[email protected]: reading https://sum.golang.org/lookup/lmod.org/[email protected]: 410 Gonego下載帶有標簽v1.0.0的版本GOPATH = /Users/user/go":$GOPATH└── go     └── pkg         └── mod             └── cache                 └── download                     └── mod.org                         └── bar.git                             └── @v                                 ├── v1.0.0.info                                 ├── v1.0.0.lock                                 └── v1.0.0.zip.tmp882433775,但我仍然無法在其他 go-project 中使用它作為依賴項。
查看完整描述

3 回答

?
ABOUTYOU

TA貢獻1812條經驗 獲得超5個贊

服務器需要按照https://golang.org/cmd/go/#hdr-Remote_import_paths中描述的協議https://mod.org/bar返回元數據。go-import

存在多種開源實現,例如:

  • rsc.io/go-import-redirector

  • github.com/GoogleCloudPlatform/govanityurls

您可以將 HTTPS 服務器和底層存儲庫的憑據(或訪問令牌)存儲在文件中.netrc,并使用GOPRIVATE環境變量告訴go命令不要在公共代理中查找您的私有存儲庫。


查看完整回答
反對 回復 2023-08-14
?
達令說

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

你不能使用沒有.git擴展的私有倉庫,因為 go 工具不知道你的私有倉庫、git 或 svn 或任何其他的版本控制協議。


或者github.com它們golang.org被硬編碼到 go 的源代碼中。


go 工具將https在獲取您的私人存儲庫之前進行查詢以了解:


https://private/user/repo?go-get=1

如果你的私有倉庫不支持https,請使用replacego模塊的語法直接告訴go工具:


require private/user/repo v1.0.0


...


replace private/user/repo => private.server/user/repo.git v1.0.0

https://golang.org/cmd/go/#hdr-Remote_import_paths


查看完整回答
反對 回復 2023-08-14
?
陪伴而非守候

TA貢獻1757條經驗 獲得超8個贊

解決問題的步驟:

1?? 將模塊聲明更改go.mod

module mod.org/gomod/bar
go 1.16

bitbucket與存儲庫結構相同

https://img1.sycdn.imooc.com//64d9f2c50001b4b306250291.jpg

存儲庫對克隆的引用:


http://localhost:7990/scm/gomod/bar.git

ssh://[email protected]/gomod/bar.git

2?? 更改.gitconfig:添加insteadOf(ssh或https)


# [url "http://localhost:7990/scm"]

[url "ssh://[email protected]"]

      insteadOf = https://mod.org

3?? 添加https://mod.org到私有存儲庫


go env -w GOPRIVATE="mod.org"

go mod download?完成所有準備工作后,可以通過以下方式從其他模塊訪問該模塊version tags


module mod.org/gomod/foo


go 1.16


require (

   mod.org/gomod/bar v1.0.0-beta.1

)


replace (

   mod.org/gomod/bar => mod.org/gomod/bar.git v1.0.0-beta.1

或手動


go get -u mod.org/gomod/bar.git

go get mod.org/gomod/[email protected]


查看完整回答
反對 回復 2023-08-14
  • 3 回答
  • 0 關注
  • 242 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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