Java нативно - GraalVM Native Image
Ещё с самого начала моей карьеры разработчика программного обеспечения на платформе Java меня волновал вопрос: "А можно ли компилировать Java-код в нативные исполняемые файлы?", и я был далеко не один такой. И инструменты для компиляции Java-кода в нативные исполняемые файлы и библиотеки существовали, например тот же GNU C compiler for Java (gcj), хоть и с некоторыми нюансами.
Но меня этот вопрос как-то не сильно волновал, так что дальше чтения теории я не ушёл, да и как-то забыл про это.
Однако в 2019 году корпорация Oracle явила общественности новый проект - GraalVM, являющийся по сути JDK с компилятором Graal вместо HotSpot C1/C2 и набором дополнительных инструментов, одним из которых является native-image - инструмент для компиляции нативных исполняемых файлов и библиотек из Java-байткода.
В этом ролике я рассмотрю три сценария использование native-image для компиляции Java-байткода в исполняемые файлы:
- Компиляция одного класса
- Компиляция простого проекта в Maven и Gradle
- Компиляция проекта на основе Spring Boot в Maven и Gradle
Кроме этого в ролике рассматривается компиляция со статическим связыванием (musl + GCC 10 и zlib 1.3) и запуск приложений в Docker.
00:00 Вступление
02:00 Сайт GraalVM
02:47 О native-image и сборке нативных исполняемых файлов
07:48 Компиляция класса с native-image
15:05 Компиляция со статическим связыванием
25:00 Сборка простого Maven-проекта с native-image
29:50 Сборка простого Gradle-проекта с native-image
33:28 Сборка Maven-проекта со Spring Boot с native-image
51:45 Сборка Maven-проекта со Spring Boot с native-image
#java #graal #graalvm #nativeimage #springboot #docker #maven #gradle
Мой сайт: https://alexkosarev.name/
Паблик в VK: https://vk.com/public218833461
Канал в Telegram: https://t.me/+TZCuO38vG3oqu_Jq
Стать доном: https://vk.com/donut/shurik.codes
Донаты в Boosty: https://boosty.to/akosarev/purchase/1451735
Донаты в Tinkoff: https://www.tinkoff.ru/cf/4PEOiVCZQuS