方法 / 步骤
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 创建项目
- File → New → Project → Maven
- 输入 GroupId/ArtifactId → Finish
- 在 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
- 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中文官网.