真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

go語言缺少依賴 go語言依賴管理

GO語言(二十七):管理依賴項(下)-

當您對外部模塊的存儲庫進行了 fork (例如修復模塊代碼中的問題或添加功能)時,您可以讓 Go 工具將您的 fork 用于模塊的源代碼。這對于測試您自己的代碼的更改很有用。

創(chuàng)新互聯建站是專業(yè)的山西網站建設公司,山西接單;提供成都網站建設、成都做網站,網頁設計,網站設計,建網站,PHP網站建設等專業(yè)做網站服務;采用PHP框架,可快速的進行山西網站開發(fā)網頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網站,專業(yè)的做網站團隊,希望更多企業(yè)前來合作!

為此,您可以使用go.mod 文件中的replace指令將外部模塊的原始模塊路徑替換為存儲庫中 fork 的路徑。這指示 Go 工具在編譯時使用替換路徑(fork 的位置),例如,同時允許您保留import 原始模塊路徑中的語句不變。

在以下 go.mod 文件示例中,當前模塊需要外部模塊example.com/theirmodule。然后該replace指令將原始模塊路徑替換為example.com/myfork/theirmodule模塊自己的存儲庫的分支。

設置require/replace對時,使用 Go 工具命令確保文件描述的需求保持一致。使用go list命令獲取當前模塊正在使用的版本。然后使用go mod edit命令將需要的模塊替換為fork:

注意: 當您使用該replace指令時,Go 工具不會像添加依賴項中所述對外部模塊進行身份驗證。

您可以使用go get命令從其存儲庫中的特定提交為模塊添加未發(fā)布的代碼。

為此,您使用go get命令,用符號@指定您想要的代碼 。當您使用go get時,該命令將向您的 go.mod 文件添加一個 需要外部模塊的require指令,使用基于有關提交的詳細信息的偽版本號。

以下示例提供了一些說明。這些基于源位于 git 存儲庫中的模塊。

當您的代碼不再使用模塊中的任何包時,您可以停止將該模塊作為依賴項進行跟蹤。

要停止跟蹤所有未使用的模塊,請運行go mod tidy 命令。此命令還可能添加在模塊中構建包所需的缺失依賴項。

要刪除特定依賴項,請使用go get,指定模塊的模塊路徑并附加 @none,如下例所示:

go get命令還將降級或刪除依賴于已刪除模塊的其他依賴項。

當您使用 Go 工具處理模塊時,這些工具默認從 proxy.golang.org(一個公共的 Google 運行的模塊鏡像)或直接從模塊的存儲庫下載模塊。您可以指定 Go 工具應該使用另一個代理服務器來下載和驗證模塊。

如果您(或您的團隊)已經設置或選擇了您想要使用的不同模塊代理服務器,您可能想要這樣做。例如,有些人設置了模塊代理服務器,以便更好地控制依賴項的使用方式。

要為 Go 工具指定另一個模塊代理服務器,請將GOPROXY 環(huán)境變量設置為一個或多個服務器的 URL。Go 工具將按照您指定的順序嘗試每個 URL。默認情況下,GOPROXY首先指定一個公共的 Google 運行模塊代理,然后從模塊的存儲庫直接下載(在其模塊路徑中指定):

您可以將變量設置為其他模塊代理服務器的 URL,用逗號或管道分隔 URL。

Go 模塊經常在公共互聯網上不可用的版本控制服務器和模塊代理上開發(fā)和分發(fā)。您可以設置 GOPRIVATE環(huán)境變量。您可以設置GOPRIVATE環(huán)境變量來配置go命令以從私有源下載和構建模塊。然后 go 命令可以從私有源下載和構建模塊。

GOPRIVATE或環(huán)境變量可以設置為匹配模塊前綴的全局模式列表,這些GONOPROXY前綴是私有的,不應從任何代理請求。例如:

GO語言(二十五):管理依賴項(上)-

當您的代碼使用外部包時,這些包(作為模塊分發(fā))成為依賴項。隨著時間的推移,您可能需要升級或更換它們。Go 提供了依賴管理工具,可幫助您在合并外部依賴項時確保 Go 應用程序的安全。

本主題介紹如何執(zhí)行任務以管理您在代碼中承擔的依賴項。您可以使用 Go 工具執(zhí)行其中的大部分操作。本主題還介紹了如何執(zhí)行其他一些您可能會覺得有用的依賴相關任務。

您可以通過 Go 工具獲取和使用有用的包。在 pkg.go.dev 上,您可以搜索您可能覺得有用的包,然后使用go命令將這些包導入您自己的代碼中以調用它們的功能。

下面列出了最常見的依賴項管理步驟。

在 Go 中,您將依賴項作為包含您導入的包的模塊來管理。此過程由以下機構支持:

您可以搜索pkg.go.dev以查找具有您可能覺得有用的功能的軟件包。

找到要在代碼中使用的包后,在頁面頂部找到包路徑,然后單擊復制路徑按鈕將路徑復制到剪貼板。在您自己的代碼中,將路徑粘貼到導入語句中,如下例所示:

在您的代碼導入包后,啟用依賴項跟蹤并獲取包的代碼進行編譯。

要跟蹤和管理您添加的依賴項,您首先要將代碼放入其自己的模塊中。這會在源代碼樹的根目錄創(chuàng)建一個 go.mod 文件。您添加的依賴項將列在該文件中。

要將您的代碼添加到它自己的模塊中,請使用 go mod init命令。例如,從命令行切換到代碼的根目錄,然后按照以下示例運行命令:

該go mod init命令的參數是您的模塊的模塊路徑。如果可能,模塊路徑應該是源代碼的存儲庫位置。

如果一開始您不知道模塊的最終存儲庫位置,請使用安全的替代品。這可能是您擁有的域的名稱或您控制的另一個名稱(例如您的公司名稱),以及來自模塊名稱或源目錄的路徑。

當您使用 Go 工具管理依賴項時,這些工具會更新 go.mod 文件,以便它維護您的依賴項的當前列表。

添加依賴項時,Go 工具還會創(chuàng)建一個 go.sum 文件,其中包含您所依賴的模塊的校驗和。Go 使用它來驗證下載的模塊文件的完整性,特別是對于在您的項目上工作的其他開發(fā)人員。

在代碼中包含存儲庫中的 go.mod 和 go.sum 文件。

當您運行go mod init創(chuàng)建用于跟蹤依賴項的模塊時,您指定一個模塊路徑作為模塊的名稱。模塊路徑成為模塊中包的導入路徑前綴。一定要指定一個不會與其他模塊的模塊路徑沖突的模塊路徑。

至少,一個模塊路徑只需要表明它的來源,例如公司或作者或所有者名稱。但是路徑也可能更能描述模塊是什么或做什么。

模塊路徑通常采用以下形式:

1、Go 工具可以在其中找到模塊源代碼的存儲庫的位置。

例如,它可能是github.com/ /.

如果您認為您可能會發(fā)布模塊供其他人使用,請使用此最佳實踐。

2、一個你控制的名字。

如果您不使用存儲庫名稱,請務必選擇一個您確信不會被其他人使用的前綴。一個不錯的選擇是您公司的名稱。避免使用常用術語,例如widgets、utilities或 app。

Go 保證以下字符串不會在包名稱中使用。

1、test– 您可以將test用作模塊路徑前綴以便代碼用于在另一個模塊中本地測試功能進行測試。

使用test作為模塊路徑前綴是測試的一部分。例如,您的測試本身可能會運行go mod init test,然后以某種特定方式設置該模塊,以便使用 Go 源代碼分析工具進行測試。

2、example– 在某些 Go 文檔中用作模塊路徑前綴,例如在創(chuàng)建模塊以跟蹤依賴關系的教程中。

請注意,Go 文檔還用于example.com說明示例何時可能是已發(fā)布的模塊。

Go語言版本控制及包依賴管理

這個文件通過路徑標識 rsc.io/hello 定義了一個模塊,它本身還依賴于兩個其他模塊:golang.org/x/text 和 rsc.io/quote ,這個模塊自身編譯的時候使用的是 go.mod 文件中指定的依賴列表的版本。對于更上一層的編譯,其他導入這個模塊的地方將使用它較新的版本編譯。

包發(fā)布者最好使用語義化的 tag 發(fā)布版本,vgo 也鼓勵通過打tag的版本號方式,而不是任意的提交版本。

go語言到底有什么好處

1. 部署簡單

Go

編譯生成的是一個靜態(tài)可執(zhí)行文件,除了glibc外沒有其他外部依賴。這讓部署變得異常方便:目標機器上只需要一個基礎的系統(tǒng)和必要的管理、監(jiān)控工具,完全不需要操心應用所需的各種包、庫的依賴關系,大大減輕了維護的負擔。

2. 并發(fā)性好

Goroutine和channel使得編寫高并發(fā)的服務端軟件變得相當容易,很多情況下完全不需要考慮鎖機制以及由此帶來的各種問題。單個Go應用也能有效的利用多個CPU核,并行執(zhí)行的性能好。

3. 良好的語言設計

從學術的角度講Go語言其實非常平庸,不支持許多高級的語言特性;但從工程的角度講,Go的設計是非常優(yōu)秀的:規(guī)范足夠簡單靈活,有其他語言基礎的程序員都能迅速上手。更重要的是

Go 自帶完善的工具鏈,大大提高了團隊協(xié)作的一致性。

4. 執(zhí)行性能好

雖然不如 C 和 Java,但相比于其他編程語言,其執(zhí)行性能還是很好的,適合編寫一些瓶頸業(yè)務,內存占用也非常省。


分享題目:go語言缺少依賴 go語言依賴管理
瀏覽路徑:http://weahome.cn/article/dodechc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部