gpt4 book ai didi

go - 查找 go 程序的导入和依赖项

转载 作者:IT王子 更新时间:2023-10-29 02:34:11 26 4
gpt4 key购买 nike

从命令行运行的 go list -json 命令将告诉您 go 程序的导入和依赖项(json 格式)。有没有办法从 go 程序中获取此信息,即在运行时,通过以某种方式或其他方式运行“go list”命令?

最佳答案

我认为如果不使用 go 二进制文件就无法做到这一点,因为 go 需要分析您的源代码。

这很容易做到,但它必须能够在运行时访问 go 和您的源代码。这是一个简单的例子:

package main

import (
"encoding/json"
"fmt"
"os/exec"
)

func main() {
cmd := exec.Command("go", "list", "-json")
stdout, err := cmd.Output()
if err != nil {
println(err.Error())
return
}

var list GoList
err = json.Unmarshal(stdout, &list)

for _, d := range list.Deps {
fmt.Printf(" - %s\n", d)
}
}

type GoList struct {
Dir string
ImportPath string
Name string
Target string
Stale bool
Root string
GoFiles []string
Imports []string
Deps []string
}

关于go - 查找 go 程序的导入和依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29087241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com