2014-10-24 1 views
0

Каков наилучший способ хранения версии моего приложения?Версия магазина в проектах Java-Git

Я использую Git tagging для хранения semantic version number в репозитории Git. Но я также хочу распечатать номер версии для пользователя программы (f.ex. когда пользователь называет ./myprogram --version). Поэтому мне также пришлось вручную изменить константу String в исходном коде Java для каждой новой версии.

Есть ли более разумный способ сохранить номера версий в репозитории Git и исходный код в синхронизации?

+1

Найден достойный ответ на программистов стека обмена: http://programmers.stackexchange.com/questions/141973/how-do-you-achieve-a-numeric-versioning-scheme-with-git – Drejc

+1

Если вы используете maven, вы можете использовать [git-commit-id-plugin] (https://github.com/ktoso/maven-git-commit-id-plugin). Если вы не ... ну, наверняка есть плагин для любого используемого инструмента построения. Запишите номер версии в файл, который читается вашей программой. – musiKk

+0

@musiKk: Крутой отзыв, у меня не было идеи использовать инструмент сборки для этой задачи. Для 'sbt' я нашел теперь [sbt-release] (https://github.com/sbt/sbt-release). Вы должны написать это как ответ, поэтому я могу принять это. – Sonson123

ответ

1

В нашем проекте мы используем git-commit-id-plugin для maven. Вы можете сгенерировать то, что может быть прочитано во время выполнения вашей программой, например Java-класс, содержащий статические поля или файл свойств, который читается.

Если вы не используете maven, наверняка есть плагин для вашего инструмента построения или, по крайней мере, возможность как-то вызвать git describe (как это было предложено другими).

2

Вы можете получить текущий тег мерзавца с помощью

git describe [--abbrev=0] > localFileForTag 

Если поместить эту строку в скрипт и запустить этот сценарий в процессе сборки, вы можете сохранить текущий тег в локальном файле. Ваша программа просто должна читать и печатать содержимое файла.

Смежные вопросы