Gomock "Loading input failed: loading package failed"

Пытаюсь использовать Gomock (ось ubuntu, gomock и mockgen установлены). Мой интерфейс :

package interfaces
import "github.com/google/uuid"

    type Dao interface {
    AddURI(str *string) uuid.UUID
    GetURI(str *uuid.UUID) (response string, ok bool)
}

При вызове mockgen -source=dao.go -destination=dao_mock.go -package=interfaces Получаю огромный вывод ошибок в консоль (это конец вывода, весь вывод не помещается в терминал):

/usr/local/go/src/runtime/cgo/handle.go:121:25: undeclared name: any
/usr/local/go/src/net/lookup.go:270:37: undeclared name: any
/usr/local/go/src/net/lookup.go:270:42: undeclared name: any
/usr/local/go/src/net/lookup.go:382:28: undeclared name: any
/usr/local/go/src/net/lookup.go:396:37: undeclared name: any
/usr/local/go/src/net/sock_linux.go:59:20: invalid operation: shift count size (variable of type int) must be unsigned integer
/usr/local/go/src/net/lookup.go:397:14: undeclared name: any
/usr/local/go/src/net/lookup.go:319:61: undeclared name: any
/home/fedor/go/pkg/mod/github.com/google/[email protected]/sql.go:58:9: cannot use 
uuid.String() (value of type string) as driver.Value value in return statement
/home/fedor/go/pkg/mod/github.com/google/[email protected]/null.go:54:10: cannot convert nil (untyped nil value) to driver.Value
2022/09/15 21:13:16 Loading input failed: loading package failed

Если убрать import и методы, использующие его, в исходном интерфейсе, то команда mockgen отрабатывает без проблем.

Из офф. документации упоминание импортов обнаружил лишь тут:

-imports: A list of explicit imports that should be used in the resulting source code, specified as a comma-separated list of elements of the form foo=bar/baz, where bar/baz is the package being imported and foo is the identifier to use for the package in the generated source code.

Это не привело меня к успеху.

Могли бы вы подсказать, что мне нужно сделать?


Ответы (1 шт):

Автор решения: ishade

Порывшись в документации к mockgen reflect vendoring error а также Unable to generate mocks in reflect mode, нашел решение:

cannot find package "."

... github.com/golang/mock/mockgen/model

If you come across this error while using reflect mode and vendoring dependencies there are three workarounds you can choose from:

  1. Use source mode.
  2. Include an empty import import _ "github.com/golang/mock/mockgen/model".
  3. Add --build_flags=--mod=mod to your mockgen command.

В моем случае после включения пустого импорта (способ 2) удалось создать mock.go

→ Ссылка