Avatar ·

如何在构建时将版本号和提交哈希添加到Go应用程序?

大家好!我正在用Go编写一个小型Web应用程序,希望在启动时显示其版本。目前我只是手动更改代码中的常量: ```go const Version = "1.0.3" ``` 但这非常不方便。每次提交时,我都得修改代码、更改字符串、单独提交。而且我还想看到版本号、提交哈希以及构建日期——以便确切知道服务器上运行的是哪个构建版本。 我尝试过读取文件,但如果二进制文件被移到另一台机器上,这种方法就行不通了。我听说过ldflags,但不知道如何正确使用它们。 请告诉我,在Go项目中通常如何进行版本控制?如何在编译阶段将版本号、提交哈希和构建日期传递到二进制文件中,使其无需变通方法也能正常工作?并且当运行`./myapp version`或`./myapp --version`时,能显示完整信息。 如果能提供一个Makefile或构建脚本的示例,在CI/CD中自动完成这些操作,我将不胜感激。 <<>>

使用l