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

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

go語言進程管理工具 go語言多進程

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

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

我們提供的服務(wù)有:網(wǎng)站設(shè)計制作、成都做網(wǎng)站、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、河?xùn)|ssl等。為上千多家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的河?xùn)|網(wǎng)站制作公司

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

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

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

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

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

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

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

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

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

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

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

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

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

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

當(dāng)您運行g(shù)o mod init創(chuàng)建用于跟蹤依賴項的模塊時,您指定一個模塊路徑作為模塊的名稱。模塊路徑成為模塊中包的導(dǎo)入路徑前綴。一定要指定一個不會與其他模塊的模塊路徑?jīng)_突的模塊路徑。

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

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

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

例如,它可能是github點抗 / /.

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

2、一個你控制的名字。

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

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

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

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

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

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

go語言有類似javaagent的工具嗎

沒有。

go語言開發(fā)工具有:Gogland、Eclipse、LiteIDE、KomodoIDE、Atom、Brackets、VisualStudioCode、Cloud9、CodeEnv、Wide等等。

golang語言并沒有提供類似javaagent的機制允許我們在程序運行中修改代碼邏輯。

Go語言有什么好用的IDE嗎

我喜歡jetbrains系列的IDE+go插件。不過我要說的是這個問題主要看你的觀點如何。

說eclipse:

構(gòu)建方式是使用go install 命令,每一次編譯運行都是go install。這樣的好處就是如果你有很多的包,下載下來并沒有編譯,這樣每次編譯速度是很快的。而且(!)go install 符合go官方的項目結(jié)構(gòu),官方說過了,一個go的項目應(yīng)該是以個gopath,包含src,pkg,bin三個主要目錄。所以說go install個人認(rèn)為才是主要的go編譯方式。

說eclipse的缺點:

其實eclipse插件的go編譯方式,還有目錄結(jié)構(gòu),項目結(jié)構(gòu),都是非常完美的!?。?!真的很完美!可是,他的代碼提示,太差件!大括號都不能自動補全,gdb 32bit 64bit兼容問題,eclipseC++ 沒有html js插件,需要手動安裝,幾乎不能開箱即用。不過如果你是開發(fā)算法,數(shù)據(jù)處理,還是推薦eclipse的,畢竟其他都無關(guān)緊要。

說jetbrains:

說先說clione肯定不適合,新建項目沒有向?qū)?,?dǎo)致改成go項目各種不開心,比如圖標(biāo)對于我來說就無法接受go lib 不是小耗子~這是次要的,重要的是各個文件都是灰色的(沒有在cmake中包含的結(jié)果),然后說剩下的,phpstorm這個不說了,估計很少有人插件按在這里,webstorm,體驗也不是很好,idea?體驗很好,可是畢竟比較重,尤其是現(xiàn)在加入了自家的K啥玩意(無意冒犯,沒記住單詞)~可是話說回來,go跟C系列IDE配合才是最佳,跟java系列一點不搭關(guān)系,用idea似乎有點格格不入,但是!idea支持新建項目向?qū)В琹ib的圖標(biāo)也很清晰,最后還是選擇idea吧,期待clion的強大起來!

再說jetbrains系列缺點:

插件的構(gòu)建方式是go buiild 這個讓人很不爽,我們幾乎不確定會構(gòu)建到什么地方去,還要每次設(shè)置一下run配置。這個可能無關(guān)緊要,畢竟不是什么大的毛病,可是go build不能緩存.a文件,直接構(gòu)建的結(jié)果就是很多第三方包的情況下很慢!所以建議安裝包的時候手動install 一下解決這個問題。自帶代碼格式化,這個格式化跟go 格格不入,總的來說就是蛋疼,心碎,菊花癢。

最后說liteIDE:

輕量級IDE,我可以說是國人GO偉大作品典范,然而默認(rèn)構(gòu)建也是go build,項目管理方式不符合go官方標(biāo)準(zhǔn)。代碼提示不能自動導(dǎo)入(eclipse也不能),不過如果你的項目是以包為單位的,那么另當(dāng)別論。一定很不錯,畢竟是輕量級專門針對GO的IDE!

說這些,其實還有很大一部分取決于你的項目是用vendor機制管理,還是godeps機制管理依賴關(guān)系。go不像java擁有強大的幾乎天下一統(tǒng)的maven(無意冒犯,暫不評價其他構(gòu)建套件)。

go沒有官方包倉庫。

go沒有官方包管理工具。

go沒有官方自動化構(gòu)建套件。

上面三個沒有是致命要害。導(dǎo)致民間各種百花齊放。

說說我的項目怎么管理

gpm 一個shell工具(windows下你可以用git的bash,或者cygwin~)

我是嚴(yán)格艷照官方推薦方式管理go項目,一個go項目一個gopath。系統(tǒng)的gopath只是為了安裝go命令,我沒有配置gobin,意義不大。

項目的依賴跟我的代碼包都在src下(非vendor)

vendor用來存放包的特殊依賴,發(fā)布項目直接把依賴包發(fā)布上去(公網(wǎng)管理則只上傳依賴關(guān)系文件 godeps文件)

資源文件等都放在src目錄同級,編譯文件放在bin,引用直接../引用。


網(wǎng)站欄目:go語言進程管理工具 go語言多進程
URL鏈接:http://weahome.cn/article/ddgegdo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部