Golang 构建随机约束

2024-01-04

我有两个 go 文件,标头中具有不同的构建约束。

常量_生产.go:

// +build production,!staging

package main

const (
  URL               = "production"
)

常量_staging.go:

// +build staging,!production

package main

const (
  URL               = "staging"
)

main.go:

package main

func main() {
  fmt.Println(URL)
}

当我做一个go install -tags "staging",有时,它会打印production;有时,它会打印staging。同样,当我这样做时go install -tags "production",...

如何在每次构建中获得一致的输出?当我将暂存指定为构建标志时,如何使其打印暂存?当我将生产指定为构建标志时,如何使其打印生产?我在这里做错了什么吗?


go build and go install如果看起来没有任何变化,则不会重建包(二进制)——并且它对命令行构建标记的更改不敏感。

查看此内容的一种方法是添加-v在构建包时打印它们:

$ go install -v -tags "staging"
my/server
$ go install -v -tags "production"
(no output)

您可以通过添加以下内容来强制重建-a标志,这往往是矫枉过正:

$ go install -a -v -tags "production"
my/server

...或者通过在构建之前触摸服务器源文件:

$ touch main.go
$ go install -a -tags "staging"

...或者在构建之前手动删除二进制文件:

$ rm .../bin/server
$ go install -a -tags "production"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Golang 构建随机约束 的相关文章

随机推荐