我正在开发Golang项目并使用TravisCI。作为依赖工具,使用了Godeps。
通过git push运行测试后,发生了一些错误,如下所示。
# command-line-arguments
cmd/proj/main_test.go:6:2: cannot find package
"command-line-/vendor/github.com/xxxxx/xxxxx/abc" in any of:
/home/travis/.gimme/versions/go1.6.linux.amd64/src/command-line-/vendor/github.com/xxxxx/xxxxx/xxx
为什么找不到包裹? 作为构建日志,go get命令似乎运行良好。
我的travis.yml就在这里。
language: go
sudo: false
go:
- 1.6
- tip
services:
- redis-server
env:
global:
- secure: "xxxxx"
script:
- go fmt ./...
- go vet $(go list ./... | grep -v /vendor/)
- go test -v cmd/xxxx/*.go -xxxx ${XXXXX}
before_install:
- go get github.com/tools/godep
branches:
only:
- master
go go go版本没问题。 但1.6或1.5版本无法正常运行。
我该如何处理这种情况?
答案 0 :(得分:1)
Go 1.6管理依赖关系的方式与Go 1.5和以前的版本不同。
1.6介绍了/vendor
文件夹。无论何时导入依赖项,如果库存在于/vendor
中,则加载库。
该行为是在1.5中引入的,但在该版本中它是实验性的。这意味着您需要使用GO15VENDOREXPERIMENT=1
环境变量启用它。
如果您只需要提供1.5和1.6的支持,那么只需在构建1.5个项目时将变量添加到Travis。
如果您还需要为1.5之前的版本扩展支持,那么它会更复杂一些。