亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何獲取 Go 詳細的構建日志,以及 GOPATH 和“go module”模式下所有使用過的包?

如何獲取 Go 詳細的構建日志,以及 GOPATH 和“go module”模式下所有使用過的包?

Go
喵喵時光機 2023-06-12 15:01:47
我有一個項目的情況。當我在 GOPATH 外部使用 go 模塊和在 GOPATH 內部使用“go get”時,它的行為有所不同。在這兩種情況下,構建都沒有錯誤。但是 GPRC 連接的行為不同。在“go mod”情況下給出超時,與“go get”一起工作正常。我懷疑 go 使用不同的包集。我需要包含兩種模式版本的已用包的完整列表以進行比較。我怎樣才能訪問它?
查看完整描述

1 回答

?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

在編譯/構建時

您可以使用該go list -m all命令查看將在構建中用于所有直接和間接依賴項的最終版本 (?source?)。在運行時

在運行時(從您的應用程序)您可以使用該debug.ReadBuildInfo()功能:

ReadBuildInfo 返回嵌入在運行的二進制文件中的構建信息。該信息僅在使用模塊支持構建的二進制文件中可用。

注意:debug.ReadBuildInfo()僅在Go 1.12(一天前發布)中添加。

獲取和打印構建信息的示例(遞歸)。最簡單的是對構建信息進行 JSON 編組:

wg2.Wait()

close(oneResult)


// ...


for n := range oneResult{

// ...每個命令都可以選擇性地指定一個“子命令”。子命令的類型為Command,它允許將嵌套/組合命令組合在一起。


實現類似的目標:


cli-tool command1 command2 --command2flag

你可以有一個像這樣的命令結構:


app := &cli.App{

? ? //...

? ? Commands: []*cli.Command{

? ? ? {

? ? ? ? Name:? ? "command1",

? ? ? ? Usage:? ?// ...

? ? ? ? Action:? //...

? ? ? ? SubCommand: []cli.Command{

? ? ? ? ? ?{

? ? ? ? ? ? ? ?Name: "command2"

? ? ? ? ? ? ? ?Flags: []cli.Flag{

? ? ? ? ? ? ? ? ? cli.StringFlag{

? ? ? ? ? ? ? ? ? ? ?Name: "command2flag"

? ? ? ? ? ? ? ? ? ? ?// ...

? ? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ?},

? ? ? ? ? ?},

? ? ? ? },

? ? ? },

? ? //...

? ? }


您可以在這里看到 command2 嵌套在 command1 的子命令中。并且 command2 的標志將僅適用于 command2。這是本地標志的示例。


全局標志將應用于每個命令和子命令。這對于 cli 工具可能需要用于所有命令的某種配置可能很有用。例如要與之交談的服務器地址等。

示例輸出

具有單個依賴項的項目的示例輸出:) github.com/globalsign/mgo。


運行go list -m all:


mytest

github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8

在運行時獲取和 JSON 編組構建信息:

{

? "Path": "mytest",

? "Main": {

? ? "Path": "mytest",

? ? "Version": "(devel)",

? ? "Sum": "",

? ? "Replace": null

? },

? "Deps": [

? ? {

? ? ? "Path": "github.com/globalsign/mgo",

? ? ? "Version": "v0.0.0-20181015135952-eeefdecb41b8",

? ? ? "Sum": "h1:DujepqpGd1hyOd7aW59XpK7Qymp8iy83xq74fLr21is=",

? ? ? "Replace": null

? ? }

? ]

}


查看完整回答
反對 回復 2023-06-12
  • 1 回答
  • 0 關注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號