Обеспечение предположения о закрытом мире при компиляции собственных образов GraalVM.JAVA

Программисты JAVA общаются здесь
Anonymous
Обеспечение предположения о закрытом мире при компиляции собственных образов GraalVM.

Сообщение Anonymous »

Недавно я начал экспериментировать с собственными образами GraalVM и сразу же столкнулся с проблемой. Я использовал Джексона для десериализации данных JSON, и хотя параметр класса для objectMapper.readValue был константой, компилятор все равно не мог определить, что частные поля моего класса необходимы для отражения, что приводило к ошибке во время выполнения.
Это чрезвычайно простой лямбда-проект, но я не могу себе представить количество возможных статически непроверяемых ошибок, которые я мог бы получить в более сложном проекте. По моему мнению, это делает использование библиотек в собственных образах бесполезным, поскольку вы понятия не имеете, к чему нужно обращаться во время выполнения.
Мне кажется, что единственный способ доверять скомпилированному коду — это проверить, что в коде, который я использую, нет вызовов динамического отражения. До сих пор я не смог найти способ сделать это. Хуже того, похоже, что панель управления GraalVM была удалена из Интернета, а инструмент создания отчетов о сборке недоступен в JVM версии сообщества. Даже если бы я хотел что-то отладить, вручную проверив, что доступно для отражения в моем изображении, я не смог бы найти способ сделать это.
В качестве побочного вопроса мне интересно, делают ли такие платформы, как Micronaut или Quarkus, что-нибудь, чтобы смягчить эту проблему.

Вернуться в «JAVA»