go build 命令在构建过程中会产生一些缓存文件,以加速后续的构建。但是当源代码发生变化时,这些缓存文件可能导致构建结果不正确。 要强制 go build 忽略缓存,可以使用以下两个方法:

  1. 使用 -a 或 –all 参数,这会强制重新构建所有的包:
    go build -a myprogram.go
  2. 删除缓存目录下的文件,默认情况下缓存目录是 $GOPATH/pkg。可以执行:
    rm -rf $GOPATH/pkg
    然后重新运行 go build 命令,此时会重新构建所有的包,而不使用任何缓存。 除此之外,你也可以选择仅删除你修改过的包的缓存: bash rm -rf $GOPATH/pkg/mypackage/ # 删除 mypackage 包的缓存 然后 go build 只会重新构建 mypackage 包,其他没有修改的包会使用缓存。 所以总结来说,要确保 go build 忽略缓存,可以:
  3. 使用 -a 或 –all 参数强制重新构建所有包
  4. 删除 GOPATH/pkg 下的全部或部分缓存文件 然后重新运行 go build 命令,它就会构建最新的代码,而不使用缓存。