Golang在Travis CI中突然无法兼容1.15版本怎么办

Golang在Travis CI中突然无法兼容1.15版本怎么办 在 Go 1.14 版本之前,Travis 一直运行良好,能够正常获取模块。但现在,当我的 Travis CI 将 1.15 作为最新版本时,突然显示无法找到提供包 github.com/thoas/go-funk 的模块。这到底是什么问题?

1 回复

更多关于Golang在Travis CI中突然无法兼容1.15版本怎么办的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这个问题通常是由于Go 1.15对模块路径验证更加严格导致的。github.com/thoas/go-funk这个包在v0.7.0版本之后已经迁移到了github.com/thoas/go-funk/v2,但你的go.mod可能还在引用旧的模块路径。

检查你的go.mod文件,如果看到类似这样的引用:

module your-project

go 1.15

require (
    github.com/thoas/go-funk v0.8.0
)

需要更新为:

module your-project

go 1.15

require (
    github.com/thoas/go-funk/v2 v2.0.0
)

同时更新代码中的import语句:

// 旧的import
import "github.com/thoas/go-funk"

// 新的import
import "github.com/thoas/go-funk/v2"

如果问题仍然存在,可以尝试在Travis CI配置中清理模块缓存:

# .travis.yml
language: go

go:
  - "1.15"

before_script:
  - go version
  - go env
  - go clean -modcache
  - go mod download

对于更复杂的情况,可能需要检查是否存在版本冲突。运行以下命令查看详细的依赖关系:

go mod graph | grep funk
go list -m all | grep funk

如果项目中有其他依赖间接引用了旧版本的go-funk,可能需要更新所有相关依赖或使用replace指令临时解决:

// 在go.mod中添加
replace github.com/thoas/go-funk => github.com/thoas/go-funk/v2 v2.0.0

确保Travis CI使用的是正确的Go版本,可以在配置中明确指定:

# .travis.yml
install:
  - wget https://golang.org/dl/go1.15.linux-amd64.tar.gz
  - sudo tar -C /usr/local -xzf go1.15.linux-amd64.tar.gz
  - export PATH=$PATH:/usr/local/go/bin
回到顶部