Por favor, responda a estas perguntas antes de enviar seu problema. Obrigado!
go version
)?go versão go1.8.3 linux/amd64
go env
)?Ubuntu Linux, amd64
Tentativa de executar golang.org/x/tools/cmd/stringer no pacote importando dependências de fornecedores
A ferramenta funciona como esperado
Enquanto 'go build' e todas as outras ferramentas parecem boas com dependências vendidas em $GOPATH/src/vendor, stringer falha com erros de importação:
$ go build plinth/auth
$ go get golang.org/x/tools/cmd/stringer
$ go generate plinth/auth
stringer: checking package: auth.go:8:2: could not import golang.org/x/net/context (can't find import: vendor/golang.org/x/net/context)
src/plinth/auth/auth.go:37: running "stringer": exit status 1
$ stringer -type Role $GOPATH/src/plinth/auth
stringer: checking package: [...]/src/plinth/auth/auth.go:8:2: could not import golang.org/x/net/context (can't find import: vendor/golang.org/x/net/context)
$ ls $GOPATH/src/vendor/golang.org/x/net/context
context.go context_test.go ctxhttp go17.go go19.go pre_go17.go pre_go19.go withtimeout_test.go
Estamos enfrentando esse problema também. Ele só se manifesta no Go 1.8, como pode ser visto aqui: https://travis-ci.org/stripe/veneur/builds/278659663. É reproduzível localmente alterando o Dockerfile na solicitação pull correspondente para usar Go 1.8 em vez de Go 1.9. Isso acontece mesmo que o pacote que não consegue encontrar (neste caso, github.com/gogo/protobuf/proto
) esteja instalado com go install
.
O importador de stringer usa o importador Go padrão para 1.8, mas não para 1.9 .
Executar go install
no projeto atual (não no pacote que ele não pode importar, mas naquele em que a importação é fornecida) antes de executar o Stringer corrige o problema.
Eu tentei consertar isso em stringer
, embora não tenha certeza de por que o comportamento de go/importer
mudou entre 1,8 e 1,9 dessa maneira. Alguém poderia me apontar na direção certa aqui?
Esse problema foi corrigido no Go 1.10, mas foi reintroduzido recentemente. Tenho certeza de que o commit que o introduziu foi https://github.com/golang/tools/commit/ffe88906718454e356e61776b54256e873fc133b , que reverte CL 40403.
O commit foi revertido para resolver https://github.com/golang/go/issues/25650 , embora reintroduza https://github.com/golang/go/issues/10249 , que está relacionado.
Não posso comentar sobre esse problema porque ele foi originalmente bloqueado devido à idade - foi reaberto há dois dias, mas ainda é limitado a colaboradores.
@ChimeraCoder eu desbloqueei #10249.
Comentários muito úteis
@ChimeraCoder eu desbloqueei #10249.