我已經(jīng)開始學(xué)習(xí)go (1.7.4) 并且有一個(gè)當(dāng)前生成兩個(gè)可執(zhí)行文件的項(xiàng)目。我有一個(gè)目錄結(jié)構(gòu),如下所示,遵循標(biāo)準(zhǔn)的 go 布局:GOPATH=`pwd`binsrc/src/<project1>src/<project1>/vendorsrc/<project1>/glide.yamlsrc/<project2>src/<project2>/vendorsrc/<project2>/glide.yamlpkg/項(xiàng)目 1 和項(xiàng)目 2 共享很多依賴項(xiàng)。 有沒有辦法在 project1 和 project2 之間共享供應(yīng)商目錄并仍然固定版本以確??芍噩F(xiàn)的構(gòu)建?我不想為每個(gè)項(xiàng)目復(fù)制 glide.yaml 和 vendor 目錄,因?yàn)樗鼤?huì)使構(gòu)建膨脹并違反 DRY。pkg 目錄是執(zhí)行此操作的明顯方法,但與供應(yīng)商不同,我沒有像 glide 這樣的依賴管理器工具來確保使用特定版本(另請(qǐng)參閱我的相關(guān)問題)。一個(gè)可能相關(guān)的問題是這個(gè)項(xiàng)目是如何組織的。我相信去將每個(gè)項(xiàng)目子目錄映射到單個(gè) github 存儲(chǔ)庫會(huì)更常規(guī)。但是,對(duì)于我的項(xiàng)目,我想構(gòu)建至少兩個(gè)可執(zhí)行文件。我知道你可以通過使用不同的包名稱來做到這一點(diǎn),但它會(huì)混淆 go 和 glide。我努力使它在單個(gè)項(xiàng)目下工作,并決定/發(fā)現(xiàn)使用標(biāo)準(zhǔn)的 go 布局并在兩個(gè)層次上工作更容易。例如,一個(gè)優(yōu)點(diǎn)是子目錄中的“go build”等無需命名包即可工作。我還可以讓我在頂層的構(gòu)建、測(cè)試和打包機(jī)制在所有項(xiàng)目上運(yùn)行,并將我的 go 環(huán)境與其他任何環(huán)境分開。這些程序不夠復(fù)雜,無法保證單獨(dú)的 git 存儲(chǔ)庫(即使作為子模塊)。
多個(gè) go 項(xiàng)目并共享一個(gè)供應(yīng)商目錄(在 1.11 之前的 go 中)
ibeautiful
2023-05-04 17:18:38