(Idea)快速创建 quarkus 项目, 如何以舒服的方式搭建一个quarkus项目

文章目录


前言

本文章将演示如何快速的通过idea工具来辅助我们快速的构建一个quarkus项目以及快速部署Docker


创建quarkus项目

首先我们打开Idea

在左边的菜单中选择quarkus,这里要注意 quarkus 只支持jdk11以上的版本,所以这里我选择jdk17, 项目的管理方式为 maven

因为我们要做演示的是Web项目, 所以这里我们选择Web依赖, 这里需要注意的是resteasy系列的依赖互相不兼容, 这里选择有点问题, 所以我不打算选择.

来看一下默认的依赖

 这里对我们有用的就是第一个依赖quarkus-arc

        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-arc</artifactId>
        </dependency>

此时我们的项目已经创建完毕, 可以在Idea的右上交看见项目的名字, 方便一键启动项目, 写quarkus项目的时候最爽的可能是quarkus自带热部署, 你修改了代码里面就可以测试不需要重新启动项目

不过我们的项目目前还不能启动因为少了一个resteasy的相关的依赖, 因为我们需要在接口直接传入对象, 我比较习惯在请求体中传入json来达到传输对象的目的, 而且参数的校验比较容易

添加依赖

        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-resteasy-jsonb</artifactId>
        </dependency>

启动项目

现在我们可以尝试启动quarkus项目

发现quarkus在启动的时候会通过网络去下载一些依赖, 网络不好的同学可能需要注意一下.

我们找到ExampleResource, 因为quarkus官方认为, 我们传统的接口就是一个个对外方法的资源所以在quarkus里面是以资源的概念来进行的.

测试接口

quarkus的默认端口是8080, 所以完整的请求路径是http://localhost:8080/hello,因为我这里使用apifox所以只有这一小段.

测试热部署

现在我们在不重启服务器的情况下修改代码

package com.example;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

@Path("/hello")
public class ExampleResource {

    @GET
    @Produces(MediaType.TEXT_PLAIN)
    public String hello() {
        return "你好Quarkus.";
    }
}


 

 可以在控制台看见我跟改了一下代码, 就直接去发请求, quarkus又打印了一边他的banner, 启动时间是0.897, 不过如果你没有修改代码他是不会在去部署的, 这点对开发就很友好.

部署docker

可以看见quarkus提供了一键构建镜像部署的dockerfile文件

 如果直接执行肯定是不行的

FROM registry.access.redhat.com/ubi8/openjdk-11:1.11

ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'


# We make four distinct layers so if there are application changes the library layers can be re-used
COPY --chown=185 target/quarkus-app/lib/ /deployments/lib/
COPY --chown=185 target/quarkus-app/*.jar /deployments/
COPY --chown=185 target/quarkus-app/app/ /deployments/app/
COPY --chown=185 target/quarkus-app/quarkus/ /deployments/quarkus/

EXPOSE 8080
USER 185
ENV AB_JOLOKIA_OFF=""
ENV JAVA_OPTS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
ENV JAVA_APP_JAR="/deployments/quarkus-run.jar"

 可以看见脚本内容他要在当前目录找到一个target的一个文件夹,所以要使这些dockefile文件能直接执行, 或远程部署需要把他移动到src同级目录, 至于要部署到本地的Window(DockerDestop)还是远程Linux这需要使用到idea的docker服务

打开Idea自带的服务功能添加Docker服务连接

 

 

 如果是本地Window(DockerDestop)是不需要密码的, 而远程SSH和就是连接openssh, 相信有这需求的都能理解

 不过在部署之前得先执行一次maven插件的打包功能, quarkus这点就和SpringBoot一样方便

双击package,等待打包完成就可以直接执行了(这里有个小坑,打包之前会先执行测试文件需要吧test给删除)

 

根据自身的需求选择选项

 此时自动打包完毕, 还可以直接在idea上查看日志

 

 可以看见打包完毕的quarkus项目没有在从网络上获取依赖,而且启动速度也很快, 当然官方就是这么宣传的

总结

本文章将演示如何快速的通过idea工具来辅助我们快速的构建一个quarkus项目以及快速部署Docker,本人是一名在读大专生, 所以可能有经验不足, 联系邮箱197055139@qq.com

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值