嚴華 发表于 2024-5-13 12:52:50

windows下体验quarkus原生编译打包

基础


[*]本机是win10
[*]GraalVM 21.0.2,用的社区版的最新版本,并配置其bin目录加入环境变量
[*]Maven 3.9.6,用的最新版本
[*]IDEA,本机版本2023.2.5
[*]Visual Studio 2022 17.9.2,用的社区版最新版本,quarkus官网提到过Visual Studio 2017 Visual C++ Build Tools,可能2017或更高版本的这个也可以,但是由于本机早就装过Visual Studio,所以就没有测试官网提到的工具。
初始


[*]自己从idea中通过quarkus模板创建一个项目即可,勾选Add sample code,组件只选择RESTEasy Reactive即可,idea的社区版可能没有,那就去官网Quarkus - Start coding with code.quarkus.io下载初始的配置。
[*]idea中设置好此项目的java和maven的版本,就用上面的版本。
[*]自己在idea中可以运行体验下其功能及速度等。
普通打包


[*]在idea中界面运行打包或是mvn package,此时和我们常用打包根本没有区别,但是:

[*]打包出来的xxx-1.0-SNAPSHOT.jar是没法直接用java -jar运行的,会报xxx-1.0-SNAPSHOT.jar中没有主清单属性的错误。
[*]需切换到target/quarkus-app目录下找到quarkus-run.jar,用这个包来运行才行。
[*]仅仅是运行,如果你想只拷贝这个quarkus-run.jar包到其它地方去执行也行不行的,必须把上面整个目录都拷贝过去才行。

[*]要想只拷贝一个jar包就行,则打包命令需要变成mvn package -Dquarkus.package.type=uber-jar才行,此时打包后直接在target目录下找到xxx-1.0-SNAPSHOT-runner.jar,只拷贝这一个包就可以运行了。
原生打包


[*]GraalVM 21已自带native-image,不需要用gu install native-image等命令这样安装了。
[*]打包前需要配置Visual Studio Installer,点击修改按钮,如果图省事,则可以直接选择使用C++的桌面开发,内里就包罗要安装的:
https://img2024.cnblogs.com/blog/922535/202403/922535-20240309165402324-1935411907.png
[*]但实际不需要安装这么多,在单个组件选项中找到MSVC v143 - VS 2022 C++ x64/x86 生成工具(最新)和Windows 10 SDK (10.0.20348.0)(我本机是win10,所以选这个,如果是win11的系统,那就选win11开头的),这两个都找最新的就行,如上图红框。
[*]点击语言包选项,取消中文,只选择英语,否则后续打包会报native-image building on Windows currently only supports target architecture: AMD64错误,参考:报错办理
https://img2024.cnblogs.com/blog/922535/202403/922535-20240309165428230-2038745883.png
[*]原生打包命令mvn package -Dnative,此时运行的话应该还会报一个错误:Failed to find 'vcvarsall.bat',官网提到了一种办理方法,下述命令找到本机上vcvars64.bat实际所在位置替换掉:
cmd /c 'call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat" && mvn package -Dnative'但是感觉更好的方法是直接将这个call语句放到native-image.cmd中(在GraalVM安装目录的bin目录下),打开此文件,在最上方@echo off下添加此调用,参考:办理方法
@echo off
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\VC\Auxiliary\Build\vcvars64.bat" > null
[*]至此,再运行打包命令,费时会比力长,成功后会打包出xxx-1.0-SNAPSHOT-runner.exe的文件,直接双击就可以运行,而且启动速度起飞。
参考


[*]quarkus实战系列
[*]官方文档:BUILDING A NATIVE EXECUTABLE
[*](2023版本)GraalVM+native-image+Visual Studio 在Win10上全流程安装(避坑+实操)

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: windows下体验quarkus原生编译打包