golang disable "использование внутренней упаковки не допускается"

У меня есть программа go, которая проверяет большой репозиторий, выбирает некоторые интересующие пакеты и затем генерирует новый файл main.go, который имеет:

import(
  _ (package of interest here)
  _ (another package of interest here)
  ...
)
func main() {...}

Основные заинтересованы в некоторых значениях, которые эти пакеты устанавливают в их методе init.

Однако некоторые из этих пакетов имеют (...)/внутренние/(...) пути и поэтому я use of internal package not allowed при попытке запуска сгенерированного main.go.

Есть ли какой-нибудь флаг компилятора/компоновщика/другого, который отключает проверку internal пути?

Ответы

Ответ 1

Импорт пути, содержащего элемент "internal", запрещен, если код импорта находится за пределами дерева, корневого в родительском "внутреннем" каталоге. Механизма исключений нет. В частности, по дизайну не существует механизма ACL, позволяющего использовать белый список других пакетов для использования внутреннего пакета.

Предложение по правилу

Ответ 2

Но если я хочу использовать "внутренний/опрос", что мне делать?