Установить переменную Go с конфликтами ldflags с папкой поставщика

В настоящее время я разрабатываю небольшое приложение Go и хочу установить определенную переменную (например, Version, GitCommit, BuildID... и т. д.) во время сборки или выполнения (с go build или go run) с помощью параметра -ldflags.

Так как в моей компании есть несколько проектов с одинаковой базой, я решил вынести код с этими переменными в отдельный "информационный" модуль, который можно было бы импортировать в каждый проект.

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

go run -ldflags "-X git.mycompany.com/utils/info.Version=1.0.0" app.go

Это работает хорошо, и переменная установлена ​​правильно, хотя переменная не является частью «основного» приложения, а находится в зависимости.

Затем я решил развернуть приложение, поэтому использовал новый инструмент dep для создания папки vendor. Поэтому зависимость "info" теперь находится в: vendor/git.mycompany.com/utils/info

Теперь, когда я запускаю команду ту же, что и выше, указанная переменная (Version) больше не устанавливается.

Я что-то упустил здесь? Как только я удаляю папку поставщика, все снова работает нормально. Похоже, что эта папка поставщика конфликтует с опцией -ldflags или чем-то еще.

Заранее спасибо!


person Lebowski    schedule 01.06.2018    source источник


Ответы (1)