我在同一个包中有两个文件,production_constants.go和local_constants.go。
在每个人的顶部我有:
// +build production
package receivers
和
// +build local
package receivers
当我使用任一标签编译时("去安装-tags local",例如)相同的常量用于任一标记(即编译标记不被尊重)。如果我删除构建头文件,奇怪的是仍然编译所有内容并使用相同的常量。只有当我删除包装声明上方的所有空格("包裹接收器")时,我才会收到此块中重新声明的" _ "。
我很困惑,因为我认为我已经完成了文档为有条件构建的软件包指示的内容。我错过了一些明显的东西吗?
答案 0 :(得分:1)
您可以使用以下命令检查这是否是编译问题(如in this thread所述)
go clean -i receivers
# or
go install -a -tags local
通过强制完全重新编译每个文件,标签应该可以正常工作。