разрешение конфликта импортированных пакетов для mockgen - PullRequest
0 голосов
/ 23 мая 2018

У меня возникла коллизия пакетов, в которой я получаю следующую ошибку: mockgen -package=mocks -source=myproto.pb.go -destination=mocks/my_mocks.go imported package collision: "foo" imported twice

Я вижу один очевидный импорт: import foo "blah/blah/foo"

Но я не знаю с чего начатьотслеживание дубликата импорта (ни откуда он не пришел).Мне кажется странным, что это проблема, так как я импортирую myproto.pb.go очень хорошо, поэтому мне интересно, действительно ли существует проблема с двойным импортом.Кроме того, GoLand не показывает никаких проблем.

Я надеюсь, что кто-то может подсказать мне направление получения дополнительной информации о том, откуда поступает дубликат импорта, проверить, есть ли какая-либо проблема и / или обойти ее.

1 Ответ

0 голосов
/ 25 сентября 2018

Это, кажется, постоянная проблема.Я просто наткнулся на него, утверждая, что "rand" был импортирован дважды (хотя мой код не импортирует "rand").

Для меня сработал следующий обходной путь: Запишите список интерфейсов в myproto.pb.go вы хотите издеваться и использовать «режим отражения» вместо «режима источника»

mockgen -package=mocks -destination=mocks/my_mocks.go path.to/package/containing/myproto/pb/go [space-separated interface names]

должно быть эквивалентно вашему предыдущему вызову:

mockgen -package=mocks -source=myproto.pb.go -destination=mocks/my_mocks.go

, но по какой-то причине болееустойчивый и не вызывает ошибку двойного импорта.

...