Как добавить зависимость от Flyway и создать собственный образ Quarkus java.lang.ClassNotFoundException: org.jboss.vfs.VirtualFileFilter

#java #maven #kotlin #flyway #quarkus

#java #maven #kotlin #flyway #quarkus

Вопрос:

Я создаю приложение, используя quarkus, kotlin и flyway. При выполнении JVM все работает нормально, но при попытке создать собственный образ происходит сбой. После некоторой отладки я обнаружил, что способ, которым Quarkus создает собственный образ, пытается загрузить некоторые зависимости из Flyway, которые мы не используем, такие как jboss-vfs или Android SDK.

Это результат mvn package -Pnative -Dnative-image.docker-build=true команды:

введите описание изображения здесь

Внутреннее сообщение об исключении является

java.lang.ClassNotFoundException: org.jboss.vfs.VirtualFileFilter

Каков «правильный способ» добавить Flyway в качестве зависимости и иметь возможность скомпилировать собственный образ без добавления всех неиспользуемых / необязательных зависимостей?

Комментарии:

1. Насколько я знаю, flyway никогда не тестировался с Quarkus и собственным выполнением. Лучше всего было бы запросить список рассылки Quarkus о некоторых указателях на проблему

2. Спасибо за ваш совет. Я создал простой проект для проверки этой проблемы github.com/cristhiank/quarkus-flyway-bug.git

3. Спасибо, что продвигаете это вперед 🙂

Ответ №1:

Quarkus поддерживает Flyway без проблем при выполнении в режиме JVM, так что вы можете использовать его как всегда.

Собственные приложения Quarkus с Flyway пока не поддерживаются. Некоторая работа по его поддержке ведется здесь: https://github.com/quarkusio/quarkus/issues/1575