第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將具有多個(gè)程序的 GOPATH repo 轉(zhuǎn)換為 GO 模塊

將具有多個(gè)程序的 GOPATH repo 轉(zhuǎn)換為 GO 模塊

Go
繁花不似錦 2022-12-26 10:45:21
我們有一個(gè)使用舊 GOPATH 結(jié)構(gòu)的舊 git 存儲(chǔ)庫。該存儲(chǔ)庫包含多個(gè)實(shí)用程序的代碼,每個(gè)實(shí)用程序都有自己的 main.go。此外,它還包含一個(gè)帶有多個(gè)子文件夾的“公共”文件夾,每個(gè)子文件夾都具有各種共享位功能。結(jié)果是這樣的:progOne\main.go (and other code, some in subfolders)progTwo\main.go (and other code, some in subfolders)progThree\main.go (and other code, some in subfolders)common\net\ (go files, but no main)common\colors\ (go files, but no main)common\resources\ (go files, but no main)在將其轉(zhuǎn)換為 go 模塊時(shí),我可以將所有這些留在一個(gè)用于生成多個(gè)可執(zhí)行文件的 git 存儲(chǔ)庫中嗎?如果是,哪個(gè)子文件夾需要包含 go.mod 文件?編輯:感謝@colm.anseo 的全面回復(fù)。這可能是一個(gè)單獨(dú)的問題,但由于它密切相關(guān),所以我會(huì)在這里問。一旦我按照建議在 repo 的根目錄中創(chuàng)建了一個(gè) go.mod 文件,我就在 VSCode 中打開了根文件夾。我想調(diào)試“ProgOne”,所以我設(shè)置了這樣的啟動(dòng)配置:{   "name": "Launch Package",   "type": "go",   "request": "launch",   "mode": "debug",   "program": "${workspaceFolder}/progOne/main.go",   "buildFlags": ""}但是當(dāng)我嘗試啟動(dòng)調(diào)試器時(shí),構(gòu)建失?。篠tarting: /Users/me/dev/go/bin/dlv dap --check-go-version=false --listen=127.0.0.1:58867 --log-dest=3 from /Users/me/dev/convoy/myRepo/progOneDAP server listening at: 127.0.0.1:58867Build Error: go build -o /Users/me/dev/convoy/myRepo/progOne/__debug_bin -gcflags all=-N -l ./main.gomain.go:20:2: no required module provides package git.acme.com/myRepo/common/colors; to add it:    go get git.acme.com/myRepo/common/colors(exit status 1)我同時(shí)運(yùn)行了“go mod tidy”和“go get git.acme.com/myRepo/common/colors”,但這并沒有解決問題。我不希望其中任何一個(gè)是必要的,因?yàn)橛袉栴}的模塊是這個(gè)存儲(chǔ)庫的一部分。我需要做什么才能使該導(dǎo)入工作?
查看完整描述

1 回答

?
嚕嚕噠

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超7個(gè)贊

我可以將所有這些留在一個(gè)用于生成多個(gè)可執(zhí)行文件的 git 存儲(chǔ)庫中嗎?


是的。


如果是,哪個(gè)子文件夾需要包含 go.mod 文件?


正如@Peter 指出的那樣 - 只有您需要版本的那些。


只是go mod init如果您不確定 - 如果生成的路徑不正確,請(qǐng)?zhí)峁┠K路徑。


獎(jiǎng)勵(lì)建議,如果您正在對(duì)該目錄進(jìn)行版本控制,請(qǐng)通過 git 標(biāo)簽標(biāo)記您的個(gè)人目錄。您可以對(duì)包(非主)目錄或可執(zhí)行(主)包執(zhí)行此操作。


如果需要,這將允許用戶安裝特定版本的可執(zhí)行文件。


可執(zhí)行文件的 git 標(biāo)簽示例:


progOne/v0.1.0

progTwo/v0.2.5

progThree/v0.3.4

用戶可以像這樣安裝特定版本:


go install github.com/me/myrepo/progOne@v0.1.0

或用于@latest獲取最新版本。


如果包需要特定版本的依賴包,請(qǐng)像這樣標(biāo)記它們:


common/net/v0.1.2

common/colors/v0.3.5

common/resources/v0.5.9

對(duì)于依賴于這些的每個(gè)可執(zhí)行文件,您將go get使用所需的版本執(zhí)行一個(gè)(這將依次更新go.mod)


正如您從上面看到的那樣,標(biāo)簽應(yīng)該與目錄名稱匹配 - 然后以SemVer 結(jié)尾

有關(guān)模塊標(biāo)記的信息,請(qǐng)參閱官方博客文章Publishing Go Modules


查看完整回答
反對(duì) 回復(fù) 2022-12-26
  • 1 回答
  • 0 關(guān)注
  • 93 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)