[Java框架] 2分钟Quarkus快速入门

#JavaScript性能优化实战#

方法 / 步骤

0️⃣ 环境准备 & 校验

测试环境验证:

java -version
mvn -version

# GraalVM环境,如果没有native image打包需求,该环境可以不用安装
native-image --version

GraalVM 安装

1, GraalVM 官网或 GitHub 下载 GraalVM
2 解压并配置环境变量(以 Mac 为例):
export GRAALVM_HOME=/path/to/graalvm
export JAVA_HOME=$GRAALVM_HOME
export PATH=$GRAALVM_HOME/bin:$PATH
3. 安装 native-image 组件:
gu install native-image
#  检查是否安装成功 (如果能输出版本号,就说明 OK。)
native-image --version

1️⃣ IDEA 创建项目

  1. File → New → Project → Maven
  2. 输入 GroupId/ArtifactId → Finish
  3. 在 pom.xml 添加 Quarkus 依赖(可用 code.quarkus.io 在线生成)。

执行后会生成项目目录结构:

demo-quarkus
 ├── src/main/java/com/example/HelloResource.java
 ├── src/main/resources/application.properties
 ├── pom.xml

2️⃣ 运行项目(开发模式)

进入项目根目录:

./mvnw quarkus:dev

访问:http://localhost:8080/hello
热加载支持:修改代码无需重启,IDEA 保存后自动生效。

3️⃣ 构建 & 打包

3.1 普通 JAR 包 (thin jar包)

需要在依赖lib文件夹下运行

./mvnw package
  • 生成文件:
target/quarkus-app/
 ├── quarkus-run.jar   # 可运行 Jar
 └── lib/              # 依赖
  • 运行:
java -jar target/quarkus-app/quarkus-run.jar

在这里插入图片描述

3.2 胖 JAR (Uber JAR)

单文件可独立运行

./mvnw package -Dquarkus.package.jar.type=uber-jar
java -jar target/*-runner.jar
  • 打包成功大概16M左右大小, 启动速度大概
    在这里插入图片描述
    在这里插入图片描述

3.3 原生镜像(需 GraalVM 或 Mandrel)

能直接编译成一个 操作系统原生可执行文件(比如 Linux 的 ./myapp,Mac 的 ./myapp),不需要再用 java -jar

./mvnw package -Pnative
./target/demo-quarkus-1.0.0-runner

4️⃣ 部署

本地/服务器部署:拷贝 Jar/Runner,直接运行
Docker 部署:在 src/main/docker 下已有 Dockerfile.jvm、Dockerfile.native 模板

./mvnw package
docker build -f src/main/docker/Dockerfile.jvm -t demo-quarkus-jvm .
docker run -i --rm -p 8080:8080 demo-quarkus-jvm
  1. IDEA 提示
    • 运行配置:Run → Edit Configurations → Add New → Maven → 填 quarkus:dev
    • 调试模式:./mvnw quarkus:dev -Dsuspend=n -Ddebug=5005
    • 扩展管理:./mvnw quarkus:add-extension -Dextensions=“resteasy-reactive”

Readme.md

其他:

打包后在IDEA看不到target文件目录

右击项目–> 打开模块设置 --> 选择模块把target的排除进行返勾选
在这里插入图片描述

总结

Quarkus 官网这样描述道:
Traditional Java stacks were engineered for monolithic applications with long startup times and large memory requirements in a world where the cloud, containers, and Kubernetes did not exist. Java frameworks needed to evolve to meet the needs of this new world.

相比较springboot:空框架项目 21MB 启动速度0.9s
Quarkus框架项目大概 16MB启动速度0.45S,没有绝对的优势很难拓宽市场。
在这里插入图片描述

📚 参考资料 & 致谢

[1] Quarkus中文官网.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

OxYGC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值