搜尋
首頁後端開發GolangGolang,從本地導入路徑轉移到遠端導入路徑問題

Golang,從本地導入路徑轉移到遠端導入路徑問題

php小編百草為你解答Golang中從本機匯入路徑轉移到遠端匯入路徑的問題。在Golang開發中,我們經常會遇到從本地導入路徑轉移到遠端導入路徑的情況,尤其是當多人協作開發或專案遷移時。本文將詳細介紹如何正確處理這個問題,確保程式碼能順利運作。讓我們一起來看看吧!

問題內容

我剛開始將我的應用程式分解為不同的儲存庫。像許多人一樣,我正在經歷處理 Go 和更改存儲庫的麻煩。但這些問題有很多問答,所以我不會在這裡詢問。

相反,我有一個簡單的問題,但我無法理解。我的所有模組,因為它是一個大應用程序,都只是本地引用。例如core/validate等。

將內容移至多個儲存庫。似乎會導致本地引用出現問題,因此我將路徑更改為遠端路徑,例如 gitlab.com/<group>/core.git/validate</group> 正如幾個問答所建議的那樣。

但是,這會帶來一個問題,如果說gitlab.com/<group>/core.git/config</group> 引用了gitlab.com/<group>/core. git/validate</group> 並不表示gitlab.com/ <group>/core.git/config</group> 現在指向gitlab.com/gitlab.com/... 中的某些內容或指向遠端伺服器,或指向彼此以外的任何地方,就像它們只有像core/validate 這樣的相對路徑時一樣?當我更改它們時,它看起來就是這樣,因為我的 IDE (GoLand) 顯示未找到的參考。

我還沒有嘗試做go mod init 並從頭開始重建mod,但是go mod tidy 不起作用,我不知道我是否也必須在go. work 中進行更改遠端路徑很好,但現在我只是在IDE 中找不到顯示的導入。

似乎如果您使用遠端引用來進行開發時在程式碼中所做的更改,則必須推送更改,以便它是引用指向的位置,也許還可以執行go get更改為引用本地遠端路徑的地方,這似乎是一種糟糕的開發方式,因此不可能是正確的。

那麼,這些遠端路徑如何與開發配合使用,我缺少什麼?

解決方法

有幾個概念會造成混淆。

模組是套件的集合。您可以將模組命名為“mymodule”,然後“mymodule”下的所有套件將命名為“mymodule/pkg1”、“mymodule/pkg2/otherpkg”等。

然後您就有了套件的導入路徑。導入路徑顯示包的位置。例如,你的原始碼在“mymodule/pkg1”中,而你導入了“mymodule/pkg2”,那麼這是對同一模組下的套件的引用。

現在假設您在「github.com/mygroup/othermodule」上有另一個模組,名為「othermodule」。您在此模組中導入一個套件作為“github.com/mygroup/othermodule/pkg1”。如果“othermodule/pkg1”引用“othermodule/pkg2”,那麼它仍然會導入“othermodule/pkg2”,因為它位於同一模組中。但是從“mymodule/pkg1”中,您將其匯入為“github.com/mygroup/othermodule/pkg2”。

Go 模組系統使用其他模組的版本引用。當您包含模組中的套件時,該模組的特定版本將會加入 go.mod 中。如果您向該模組推送新的更改,則必須更新該引用以包含這些更改。這就是為什麼最好不要將緊密耦合的項目分成多個模組的原因。

如果您想一起開發多個模組,請使用「replace」指令來使用該模組的本機副本,而不是指向儲存庫上的版本。

以上是Golang,從本地導入路徑轉移到遠端導入路徑問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:stackoverflow。如有侵權,請聯絡admin@php.cn刪除
初始功能和副作用:平衡初始化與可維護性初始功能和副作用:平衡初始化與可維護性Apr 26, 2025 am 12:23 AM

Toensureinitfunctionsareeffectiveandmaintainable:1)Minimizesideeffectsbyreturningvaluesinsteadofmodifyingglobalstate,2)Ensureidempotencytohandlemultiplecallssafely,and3)Breakdowncomplexinitializationintosmaller,focusedfunctionstoenhancemodularityandm

開始GO:初學者指南開始GO:初學者指南Apr 26, 2025 am 12:21 AM

goisidealforbeginnersandsubableforforcloudnetworkservicesduetoitssimplicity,效率和concurrencyFeatures.1)installgromtheofficialwebsitealwebsiteandverifywith'.2)

進行並發模式:開發人員的最佳實踐進行並發模式:開發人員的最佳實踐Apr 26, 2025 am 12:20 AM

開發者應遵循以下最佳實踐:1.謹慎管理goroutines以防止資源洩漏;2.使用通道進行同步,但避免過度使用;3.在並發程序中顯式處理錯誤;4.了解GOMAXPROCS以優化性能。這些實踐對於高效和穩健的軟件開發至關重要,因為它們確保了資源的有效管理、同步的正確實現、錯誤的適當處理以及性能的優化,從而提升軟件的效率和可維護性。

進行生產:現實世界的用例和示例進行生產:現實世界的用例和示例Apr 26, 2025 am 12:18 AM

Goexcelsinproductionduetoitsperformanceandsimplicity,butrequirescarefulmanagementofscalability,errorhandling,andresources.1)DockerusesGoforefficientcontainermanagementthroughgoroutines.2)UberscalesmicroserviceswithGo,facingchallengesinservicemanageme

go中的自定義錯誤類型:提供詳細的錯誤信息go中的自定義錯誤類型:提供詳細的錯誤信息Apr 26, 2025 am 12:09 AM

我們需要自定義錯誤類型,因為標準錯誤接口提供的信息有限,自定義類型能添加更多上下文和結構化信息。 1)自定義錯誤類型能包含錯誤代碼、位置、上下文數據等,2)提高調試效率和用戶體驗,3)但需注意其複雜性和維護成本。

使用GO編程語言構建可擴展系統使用GO編程語言構建可擴展系統Apr 25, 2025 am 12:19 AM

goisidealforbuildingscalablesystemsduetoitssimplicity,效率和建築物內currencysupport.1)go'scleansyntaxandaxandaxandaxandMinimalisticDesignenhanceProductivityAndRedCoductivityAndRedCuceErr.2)ItSgoroutinesAndInesAndInesAndInesAndineSandChannelsEnablenableNablenableNableNablenableFifficConcurrentscorncurrentprogragrammentworking torkermenticmminging

有效地使用Init功能的最佳實踐有效地使用Init功能的最佳實踐Apr 25, 2025 am 12:18 AM

Initfunctionsingorunautomationbeforemain()andareusefulforsettingupenvorments和InitializingVariables.usethemforsimpletasks,避免使用輔助效果,andbecautiouswithTestingTestingTestingAndLoggingTomaintAnainCodeCodeCodeClarityAndTestesto。

INIT函數在GO軟件包中的執行順序INIT函數在GO軟件包中的執行順序Apr 25, 2025 am 12:14 AM

goinitializespackagesintheordertheordertheyimported,thenexecutesInitFunctionswithinApcageIntheirdeFinityOrder,andfilenamesdetermineTheOrderAcractacractacrosmultiplefiles.thisprocessCanbeCanbeinepessCanbeInfleccessByendercrededBydeccredByDependenciesbetenciesbetencemendencenciesbetnependendpackages,whermayleLeadtocomplexinitialitialializizesizization

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器