回答

收藏

应用程序自动构建版本控制

技术问答 技术问答 305 人阅读 | 0 人回复 | 2023-09-12

每次编译 Go 次要版本号可以自动添加到应用程序中吗?) F7 P; o5 L4 t7 U* x; W1 X% ]
我想在我的程序中设置一个版本号,并且有一个自动递增部分:
- v- L, d' q0 L$ J
    $ myapp -versionMyApp version 0.5.132) h' }% B, G5 M. B
0.5 是我设置的版本号,132 是每次编译二进制文件时自动增加的值。
( R5 t5 m; m' l" R( S这在 Go 中有可能吗?
! g" i  @; m( {5 ?; N                                                               
4 X" J: X5 ~8 x0 L    解决方案:                                                                4 H* R. y& y# i+ N- |
                                                                Go 链接器(go tool link)设置未初始化字符串变量的值有一个选项:) b# b; I0 t, k' C8 f+ V7 {7 S' g* {
golang-X importpath.name=value  Set the value of the string variable in importpath named name to
9 [8 @7 f& O6 d价值。请注意,在 Go 1.在5 之前,该选项使用两个单独的参数。现在它需要在第一个 = 在符号上拆分一个参数。. Z  q! ~3 B1 n2 V7 l9 Y
作为构建过程的一部分,您可以使用它设置字符串变量的版本。go使用-ldflags. 例如,给出以下源文件:9 v6 Y7 V. E9 D2 c( J, Z
    package mainimport "fmt"var xyz stringfunc main()      fmt.Println(xyz)}
    ; o6 C, f3 |( j+ Y- ^8 w1 p/ u& [
然后:3 D, S+ L; v. p& Z. b9 q' I7 w; G1 n
    $ go run -ldflags "-X main.xyz=abc" main.goabc$ p0 u$ B) }* ?9 F2 J/ K" M
为了main.minversion施工时设置施工日期和时间:9 _7 i+ {1 M; L
    go build -ldflags "-X main.minversion=`date -u  .%Y%m%d.%H%M%S`" service.go  @% a: r+ ^* ?( {% M, `, @
如果不main.minversion以这种方式初始化编译,它将包含空字符串。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则