Flyway не может сканировать миграции sql в пути к классу после обновления до tomcat 8

Наше приложение отлично работает с flyway 3.0 и tomcat 7. Мы используем миграции на основе sql в пути к классам.

Недавно мы пытаемся обновить наше приложение для использования tomcat 8. После этого flyway не смог найти миграции sql в нашем пути к классам. Мы использовали развертывание WAR с unpackWAR = false. Только для информации, используя unpackWAR = true, проблема больше не воспроизводится.

Я попытался отлаживать кодовую базу flyway и пытался выяснить различия до обновления до tomcat 8 и после обновления до tomcat 8. Одно ключевое отличие, которое я обнаружил, заключается в том, что внутри ClassPathScanner.getLocationUrlsForPath(), ранее мы используется для поиска местоположения файла WAR с префиксом file: protocol, однако теперь с tomcat 8 мы находим местоположение файла WAR с префиксом jar: protocol. Это не кажется очень проблематичным. Однако это приводит к выполнению кода внутри JarFileClassPathLocationScanner.findResourceNamesFromJarFile(). Внутри этого метода имена элементов jar выглядят примерно так: «WEB-INF/classes/our_path/schema/V1.0.sql» и т. д., однако указанное местоположение — это только our_path/schema/V1.0.sql. Поскольку есть условие,

если (entryName.startsWith (местоположение)) {

наши миграции схем не принимаются.

есть идеи? Это похоже на ошибку?


person Tariq Islam    schedule 04.06.2015    source источник
comment
Просто добавлю, что приведенная ниже ссылка чем-то напоминает мою проблему. Единственное, что я не использовал Apache Karaf. github.com/flyway/flyway/issues/1007   -  person Tariq Islam    schedule 04.06.2015


Ответы (1)


Это должно работать из коробки. Пожалуйста, зарегистрируйте проблему в системе отслеживания проблем с инструкциями по воспроизведению (или, что еще лучше, с небольшим репозиторием).

person Axel Fontaine    schedule 04.06.2015
comment
Спасибо, я зарегистрирую проблему с шагами для воспроизведения. Если проблема не может быть воспроизведена, я буду более чем счастлив добавить воспроизводимое репо. - person Tariq Islam; 05.06.2015