Mar*_*ark 2 go travis-ci go-modules
我已将项目升级为使用go 1.11.2模块支持.但是,我遇到了一个非常烦人的问题.go.mod文件在CI中不断变化.这是每天不同的文件.今天go.sum中的行是:
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd h1:HuTn7WObtcDo9uEEU7rEqL0jYthdXAmZ6PP+meazmaU=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
Run Code Online (Sandbox Code Playgroud)
go.mod是:
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd // indirect
Run Code Online (Sandbox Code Playgroud)
我没有更新任何依赖项.他们没有锁定!为什么不?如果依赖关系不断变化,这是一个非常大的问题.但是,我没有看到其他人对这个问题尖叫.所以我一定做错了.
我正在用go mod tidy它来同步它git diff --exit-code.这适用于本地但不适用于Travis-CI.我认为这是一个问题,因为在Travis-CI上它需要获取依赖项,并且因为这些依赖项不使用语义版本控制,所以Go抓取最新的,每次提交时都会更改为master.如果您同意这是问题,如何使用Go模块锁定依赖项?
维基解释了如何使用未选择进入模块的软件包
这是一个相关的片段:
如果存储库没有任何有效的semver标记,则存储库的版本将记录为"伪版本",例如v0.0.0-20171006230638-a6e239ea1c69(其中包含时间戳和提交哈希,并且设计为允许在go.mod中记录的版本之间的总排序,以便更容易推断哪些录制版本比其他录制版本"更晚".
您也可以require具体提交哈希值:
在需要时,可以使用go get foo@v1.2.3,go get foo @ master,go get foo @ e3702bed2或直接编辑go.mod等命令选择更具体的依赖项版本.
| 归档时间: |
|
| 查看次数: |
183 次 |
| 最近记录: |