1 回答

TA貢獻(xiàn)1777條經(jīng)驗(yàn) 獲得超10個(gè)贊
在編譯/構(gòu)建時(shí)
您可以使用該go list -m all
命令查看將在構(gòu)建中用于所有直接和間接依賴項(xiàng)的最終版本 (?source?)。在運(yùn)行時(shí)
在運(yùn)行時(shí)(從您的應(yīng)用程序)您可以使用該debug.ReadBuildInfo()
功能:
ReadBuildInfo 返回嵌入在運(yùn)行的二進(jìn)制文件中的構(gòu)建信息。該信息僅在使用模塊支持構(gòu)建的二進(jìn)制文件中可用。
注意:debug.ReadBuildInfo()
僅在Go 1.12(一天前發(fā)布)中添加。
獲取和打印構(gòu)建信息的示例(遞歸)。最簡單的是對(duì)構(gòu)建信息進(jìn)行 JSON 編組:
wg2.Wait()
close(oneResult)
// ...
for n := range oneResult{
// ...每個(gè)命令都可以選擇性地指定一個(gè)“子命令”。子命令的類型為Command,它允許將嵌套/組合命令組合在一起。
實(shí)現(xiàn)類似的目標(biāo):
cli-tool command1 command2 --command2flag
你可以有一個(gè)像這樣的命令結(jié)構(gòu):
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 的標(biāo)志將僅適用于 command2。這是本地標(biāo)志的示例。
全局標(biāo)志將應(yīng)用于每個(gè)命令和子命令。這對(duì)于 cli 工具可能需要用于所有命令的某種配置可能很有用。例如要與之交談的服務(wù)器地址等。
示例輸出
具有單個(gè)依賴項(xiàng)的項(xiàng)目的示例輸出:) github.com/globalsign/mgo。
運(yùn)行g(shù)o list -m all:
mytest
github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8
在運(yùn)行時(shí)獲取和 JSON 編組構(gòu)建信息:
{
? "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
? ? }
? ]
}
- 1 回答
- 0 關(guān)注
- 121 瀏覽
添加回答
舉報(bào)