有没有办法通过库调用从另一个Go程序中以编程方式调用Go工具(如go build
),并获得比命令行调用的文本输出更多的结构化输出?
答案 0 :(得分:0)
在另一个go程序中,可以使用os/exec
包执行控制台命令,如下所示:
func main (){
cmd := exec.Command("go run lib/main.go")
if err := cmd.Run(); err != nil{
log.Fatal(err)
}
}
我不认为这非常有用。
答案 1 :(得分:0)
如果您尝试以编程方式运行构建,则还可以使用os/exec
软件包。
func runBuild() {
cmd := exec.Command("go", "build", "./main.go")
err := cmd.Run()
if err != nil {
log.Fatal(err)
}
}
您也可以传递其他标志。例如:buildmode标志
cmd := exec.Command("go", "build", "-buildmode=plugin", "./main.go")