В настоящее время я разрабатываю небольшое приложение Go и хочу установить определенную переменную (например, Version, GitCommit, BuildID ... и т. Д.) Во время сборки или выполнения (с go build
или go run
), используя-ldflags
option.
Поскольку в моей компании у нас есть несколько проектов с одинаковой базой, я решил извлечь код с этими переменными в отдельный модуль "info", который можно импортировать в каждый проект.
Вот моя проблема, скажем, я запускаю приложение следующим образом:
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
) больше не устанавливается.
Я что-то здесь упускаю?Как только я удаляю папку vendor, все снова работает нормально.Как будто эта папка поставщика конфликтует с опцией -ldflags
или чем-то еще.
Заранее спасибо!