GraalVM
尝试
开始
GraalVM 是一个更快的JAVA虚拟机,而且可以构建native image
这个词的意思是,如果是windows
系统就能构建一个exe
执行程序,其他系统就对应其他系统的执行程序,quarkus
通俗的来说,是基于该虚拟机的一个java web
开放框架, 实现了标准的JAX-RS
规范,并且顶层并没有采用传统的servlet
, 而是使用了vert.x
这种react
框架, 可以很好的实现react
功能.
准备
- 下载GraalVM, 根据自己系统弄个需要下
载. - 配置
PATH
,JAVA_HOME
等环境变量, 指向GraalVM
所在的目录. - 通过Quarksu网站配置一个项目或者使用
mvn
命令行创建项目,mvn io.quarkus:quarkus-maven-plugin:2.0.0.CR2:create "-DprojectGroupId=com.sa" "-DprojectArtifactId=sa" "-DclassName=com.sa.GreetingResource" "-Dpath=/hello"
.
开发
默认Qarkus
是使用maven
作为项目管理的.
下载好项目,通过vscode
或者 idea
打开,vscode
会提示安装插件, 按照提示安装插件,idea
自己搜索quarkus
插件.
运行, mvn:dev
, 不到1s就启动好了, 可以访问默认的/hello
quarkus
的maven
插件提供了安装第三方jar
的命令mvn quarkus:list-extensions
查看所有可以安装的第三方jar
mvn quarkus:add-extension -Dextensions='quarkus-jsonp'
安装第三方jar
或者mvn quarksu:add-extensions -Dextensions='xxx,xxx,x
批量安装第三方jar包,也可以使用通配符*
安装.
运行
mvn quarkus:dev
打包
普通jar
包: mvn package
exe
本地可执行文件:
- 安装
MSVC 2019
对应你的GraalVM
版本应该是openjdk11
版本, - 安装
windows sdk
- 安装
Microsoft visual studio
–和上一步合并安装命令choco install visualstudio2019-workload-vctools
, 前提是电脑得有chocolatey
这个windows包管理工具. - 进入项目执行以下命令:
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvars64.bat" mvnw package -Pnative -DskipTests
碰见的问题
由于电脑是洋垃圾cpu,所以cpu架构被识别为??而非arm的, 所以得在application.properties
中添加quarkus.native.additional-build-args=-H:-CheckToolchain
参数跳过检查.
结尾
总的来说GraaalVM
的速度还是很快的, Quarkus
也带来了新的web
开发体验, 上手难度比较小,只要你懂JAX-RS
规范就行,而且还很好的和docker
进行了集成,可以直接配置hibernate entity
而不进行任何数据库配置, quarkus
在背后会自动寻找docker
为你创建数据库,让开发人员专注与开发. 但是关于graalVM
编译本地可执行文件来说,感觉有点鸡肋,虽然实现了,但是还是需要visual studio
这种庞大的工具.