модуль cmd / app в зависимости от другого cmd во внешнем модуле

# #go #go-modules

Вопрос:

У меня есть модуль go, в котором есть приложение в cmd / generator. Команда генератора динамически создает некоторые файлы исходного кода go. Я хотел бы запустить goimports для созданных файлов, чтобы впоследствии привести их в порядок.

Я использую инструменты.идиома go (https://play-with-go.dev/tools-as-dependencies_go115_en /) чтобы добавить зависимость от golang.org/x/tools/cmd/goimports .

В приложении генератора я вызываю goimports через

 cmd := exec.Command("go", "run", "golang.org/x/tools/cmd/goimports", "-w", "./srcDir")
 

Все работает, как ожидалось, если я запускаю приложение генератора, когда я стою в содержащем его модуле.

Теперь к проблеме: если я импортирую этот модуль в другой модуль и хочу запустить приложение cmd / generator, оно не сможет получить доступ к goimports, поскольку импортирующий модуль не получает временной зависимости от golang.org/x/tools .

Как я могу заставить эту зависимость от инструмента «перетекать» во внешний модуль?