Учитывая, что некоторые из ваших ключей генерируются во время выполнения, я не думаю, что вы когда-либо сможете найти инструмент для проверки того, какие ключи используются, а какие нет.
Учитывая проблему, которую вы поставили, я, вероятно, напишу аспект AOP, который оборачивает реализацию MessageSource.getMessage () и регистрирует все запрошенные коды, которые извлекаются из пакета ресурсов. Учитывая, что MessageSource является интерфейсом, вам необходимо знать, какую реализацию вы используете, но я подозреваю, что вы уже должны это знать.
Учитывая, что вы пишете аспект самостоятельно, вы можете создать формат, который будет легко коррелировать с вашим комплектом ресурсов, и как только вы убедитесь, что он содержит все необходимые ключи, это становится тривиальной задачей для сравнения двух файлов и устранить любые лишние линии.
Если вы действительно хотите тщательно разобраться с этим, если у вас уже настроен Spring для сканирования аннотаций, вы можете даже упаковать свой аспект в свой собственный jar (или .class) и поместить его в рабочий WEB-INF / lib. (WEB-INF / classes), перезапустите веб-приложение и дайте ему некоторое время поработать. Самое замечательное в аннотациях заключается в том, что все они могут быть автономными. Если вы уверены, что накопили достаточно данных, просто удалите банку (.class) и все готово.