调用go工具的编程方式

atmip9wb  于 2023-05-04  发布在  Go
关注(0)|答案(2)|浏览(110)

有没有一种方法可以通过库调用从另一个Go程序中以编程方式调用Go工具(如go build),并获得比命令行调用的文本输出更结构化的输出?

93ze6v8z

93ze6v8z1#

如果您尝试以编程方式运行build,也可以使用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")

参考:https://golang.org/pkg/os/exec/

3yhwsihp

3yhwsihp2#

在另一个go程序中,可以使用os/exec包执行控制台命令,如下所示:

func main (){
   cmd := exec.Command("go run lib/main.go")
   if err := cmd.Run(); err != nil{
       log.Fatal(err)
   }
}

但我不认为这是非常有用的。

相关问题