我应该用go run运行服务器吗。或者./main有什么区别?

我应该用go run运行服务器吗。或者./main有什么区别?,go,Go,我有一台go服务器,通常运行方式如下: go-build.&&&/main 但是在网上我看到很多使用go-run的例子。使用哪一种更好?有什么区别?来自官方文档(go1.11): go-run-编译并运行命名的主go包 go build-编译由导入路径命名的包, 以及它们的依赖项,但它不会安装结果 go install-编译并安装由导入路径命名的包 意思是: 通常对于本地环境,可以使用go-run, 但对于PROD环境,最好使用来构建应用程序,然后运行/main, 但是,如果您需要Go tool

我有一台go服务器,通常运行方式如下:

go-build.&&&/main


但是在网上我看到很多使用go-run的例子。使用哪一种更好?有什么区别?

来自官方文档(
go1.11
):

go-run
-编译并运行命名的主go包

go build
-编译由导入路径命名的包, 以及它们的依赖项,但它不会安装结果

go install
-编译并安装由导入路径命名的包

意思是:

通常对于本地环境,可以使用
go-run

但对于PROD环境,最好使用
来构建应用程序,然后运行
/main


但是,如果您需要Go toolchain,您必须使用
Go install
,因为它安装软件包和依赖项并运行
/bin/main
(这在dev/stage环境中可能有意义)。

Go help run
获得的文档中有什么不清楚的地方,
go-help build
go-help install
?您可以在这里阅读问题的解释,然后去安装。/main?@CommonSenseCode,
go-install
不太可能创建
/main
。密切注意每个命令的作用。现在有了模块和GOCACHE,除了最终的构建工件之外,
构建
安装
之间几乎没有什么区别。
go安装
与依赖性无关,它构建二进制文件并将其放在
$GOPATH/bin
go-install&&go-build
是不必要的-它只在两个不同的路径上生成两个二进制文件。在开发环境中使用
go-run
是一个非常奇怪的选择-我只会在本地使用
go-run
,通常不会。如果你想安装依赖项,那就是
go-get
@JimB
go-install
不太可能创建
/main
go install
在$GOPATH中创建
/bin/main