如何在构建中使用不同的配置文件?

how to use different config files on build?

我有一个用于我的 go 程序的配置文件,很明显当我 运行 在本地和在我的服务器上时它有不同的值。

我的老板最近要求我切换部署方法,以便我 运行 在本地“构建”,然后部署该构建。因此,每次构建时我都需要切换全局配置文件。

不幸的是,我的记忆力太差了,我几乎肯定会忘记将这些文件切换出去。如果有办法(可能在构建脚本文件或任何东西中)在构建时使用不同的配置文件,而不是像我通常那样 运行ning "go 运行 main.go"当我在本地从事开发工作时做。

这里有人有任何想法或最佳做法吗?

注意:我已经 gitignore 这个文件了,但是由于构建 if 基本上将整个程序(包括这些设置变量)固化到一个文件中,所以在服务器上只拥有另一个文件是不行的。

谢谢大家!

使用build constraints.

这是一个例子:

config.go

//go:build !live

// Add your local config here

config_live.go

//go:build live

// Add your server config here

使用go build构建本地版本。使用go build -tags live构建服务器版本。