Из приложения Java я могу записать строку, используя пользовательскую структуру ведения журнала, следующим образом:
logger.info("Version 1.2 of the application is currently running");
Поэтому, когда пользователь отправляет мне файл журнала, я легко вижу, какую версию приложения он запускает.
Проблема с кодом выше заключается в том, что версия жестко закодирована в строковом литерале, и кто-то должен помнить, чтобы обновлять ее для каждого выпуска. Вполне неизбежно, что обновление этой строки может быть забыто для релиза.
Я бы хотел, чтобы этот строковый литерал автоматически обновлялся на основе одного из номеров версий в файле манифеста для JAR приложения:
Specification-Version: 1.2
Implementation-Version: 1.2.0.0
Я не против, если это произойдет во время компиляции или во время выполнения, пока номер версии попадает в файл журнала.