Хороший вопрос. Я сделал это в особой манере раньше. Я не очень поддерживаю следующий подход, но я все равно перечислю его для сравнения с (я надеюсь) лучшими подходами, которые скоро будут публиковать другие.
Чтобы сохранить информацию о версии в кодовой базе Java среднего размера, я создал простой класс для хранения основных, вспомогательных и ревизионных номеров версий в качестве статических констант и создания отформатированной строки версии. Затем я создал сценарий perl, чтобы вывести класс из-под контроля версий, заменить компоненты версии теми, которые указаны в качестве аргументов сценария, и проверить его обратно.
Скрипт выполняет большую часть работы, поэтому процесс обновления версии довольно прост и быстр. Я должен был реализовать это быстро, поэтому, возможно, есть лучшие способы сделать это. У меня просто не было времени или мотивации для поиска лучших альтернатив.