quarkus2.13.7 搭建与基础开发环境配置总结
quarkus 搭建与基础开发环境配置总结
大纲
基础概念
quarkus2.13.7 脚手架工程配置
配置 maven3.8.7
quarkus 快速启动
quarkus 的三种打包方式
quarkus 将程序打包为二进制文件
window 环境下 quarkus 云原生二进制文件打包环境搭建
使用 GraalVM-java11 替换本地 java8
运行二进制文件
基础概念
Quarkus 是一个集成了 Kubernetes 的开源云原生框架, 基于 ApacheLicense 2.0 发布, 用于创建适配 GraalVM 和 OpenJDK HotSpot 的
Kubernetes 原生应用, 基于 Hibernate、 Eclipse MicroProfile、Kubernetes、 Apache Camel 和 Eclipse Vert.x 等流行库和技术构建。
Quarkus 的优点包括可以与 Docker 和 Kubernetes 轻松集成, 启动速度快, 驻留集大小(RSS) 内存消耗低, 可提高开发者的生产力。
官方网站:https://quarkus.io/
quarkus 目前不支持交叉编译 需要在各个平台上独立编译
开始前的准备
开发环境
1 window11
2 quarkus2.13.7.Final
3 graalvm-ce-java11-windows-amd64-22.3.0
4 maven-3.8.7
5 eclipse-java-2022-12-R-win32-x86_64
quarkus 脚手架工程配置
使用 quarkus 提供的脚手架代码生成工具直接生成需要的项目
选择版本 2.13 -> 选择 java11 -> 选择 maven -> 点击生成项目
注意 Starter Code 选择的 NO 不会生成 hello 代码 是一个最纯粹基础项目
下载后解压得的项目结构如下
在 pom.xml 中添加 JAX-RS 依赖
编写一个最简单的 restful 接口
此时 最简单的 quarkus 脚手架工程配置完成
maven 配置
**quarkus2.13.7 需要 maven3.8.7 以上版本支持 **
提前配置值好 maven 的环境变量 path
maven3.8.7 的配置主要注意一下几点
1 maven setting.xml 中 切换一个国内的镜像库地址
2 eclipse 中配置 使用 maven setting.xml
3 项目 pom.xml 文件中也可以指定 镜像库地址
maven 镜像库地址使用华为云
eclipse 中配置 使用 maven setting.xml
项目 pom.xml 指定镜像库地址
此时 quarkus 依赖的 maven 环境配置完成
quarkus 快速启动
使用 quarkus maven 插件提供的 quarkus:dev 快速启动 quarkus
访问接口 http://127.0.0.1:8080/jaxrs/hello 返回成功
quarkus 插件支持热更新,现在稍微修改下 JAXRSResource.java 代码可以立刻看到修改后的结果
注意 quarkus2.13.7 需要 java11 环境 如果还没搭建 java11 可先跳到此步骤
quarkus 的三种打包方式
quarkus 的三种打包方式
1 普通打包方式
2 uber-jar 打包方式
3 静态编译后的原生可执行文件方式
普通打包方式
使用 maven package 命令打包项目 这是默认的方式打包出来的 jar 不包含运行时依赖的包
uber-jar 打包方式
uber-jar 类似于 springboot 打包的方式,可以把运行时所有依赖的 jar 打包在一起成为一个可执行 jar 包
注意:老版本的 qurakus 例如 1.4.1.Final 打包成为 uber-jar 需要在 application.properties 添加
注意:qurakus2.13.7 已经废弃此方法打包 uber-jar
打包后的 uber-jar 在 target 目录下的 xxx-runner.jar
静态编译后的原生可执行文件方式
quarkus 的优势是将 java 项目打包成为原生可执行文件,让 java 程序适应云原生时代的快速启动,快速进入高效状态的需求
将应用打包成为一个 原生可执行文件
window 环境下 quarkus 云原生二进制文件打包环境搭建
quarkus 将项目编译成原生可执行文件需要 GraalVM 的支持 关于 GraalVM 参考《Java GraalVM 环境搭建 class文件springboot项目 静态编译二进制文件 入门就看这一篇》
quarkus2.13.7.Final
1 需要 java 版本 11
2 需要 GraalVM 版本为 22.3.0
GraalVM 下载地址: https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-22.3.0
GraalVM 选择对应的版本
native-image 注意需要和 GraalVM 版本 平台一致
window 环境
graalvm-ce-java11-windows-amd64-22.3.0.zip
native-image-installable-svm-java11-windows-amd64-22.3.0.jar
使用 GraalVM-java11 替换本地 java8
由于 quarkus2.13.7.Final 需要 java 版本 11 GraalVM 内置 openJDK 可以直接使用 GraalVM 代替本地的 java8 Hotspot
注意事项
1 GraalVM java11 jre 生成
2 JAVA 环境变量配置
替换 JAVA_HOME
先创建 JAVA_HOME (或者替换已存在的 java8 的 JAVA_HOME )
需要保证 PATH 下只有一个 java 命令
jre 生成
java9 开始 安装 jdk 后不再安装 jre 需要自行添加
%JAVA_HOME %/jmods 文件夹下是支持的模块,把这些模块全部都安装起
jre 生成完成后 在环境变量 Path 中添加对应的路径
注意 window 修改环境变量后需要重启电脑才能生效
重启电脑后 环境变量配置完成
GraalVM-window 编译环境配置
window 编译环境需要安装对应的 native-image 以及 Visual Studio
native-image
native-image 安装可以参考 《Java GraalVM 环境搭建 class文件springboot项目 静态编译二进制文件 入门就看这一篇》
例如 native-image-installable-svm-java11-windows-amd64-22.3.0.jar 放置在 D:\graalvm\install 文件夹下
出现 GraalVM 22.3.0 Java 11 CE (Java Version 11.0.17+8-jvmci-22.3-b08) 表示完成成功
Visual Studio 安装与环境配置
Visual Studio 安装与环境配置注意事项
1 需要安装 MSVC 工具
2 需要指定语言包
3 需要配置对应的环境变量
MSVC 工具
Windows 开发环境下,还需要安装 Visual Studio,并安装 MSVC 工具 否则 GraalVM 静态编译时会出 cl.exe 找不到的错误
下载 Visual Studio 并安装对应的工具
Visual Studio 下载地址: https://visualstudio.microsoft.com/zh-hans/downloads/
下载社区版 下载后运行 VisualStudioSetup.exe
选择相关的组件
需要指定语言包
语言包勾选英文,去掉中文,否则 quarkus -Pnative 打 native-image 二进制文件时会编译报错:
配置对应的环境变量
注意 window 修改环境变量后需要重启电脑才能生效
配置 window 环境下编译需要的环境变量。否则 quarkus -Pnative 打 native-image 二进制文件时会编译报错
环境变量配置如下 (注意 C:\Program Files\Microsoft Visual Studio\2022\ 是 Visual Studio 的安装路径)
注意:变量值必须为 INCLUDE 和 LIB
再运行 mvn clean package -Pnative
编译成功 生成可执行文件
版权声明: 本文为 InfoQ 作者【刘一江】的原创文章。
原文链接:【http://xie.infoq.cn/article/0376cef10329ef6cea87c1935】。文章转载请联系作者。
评论