Quarkus é um framework Java criado para atender às necessidades de desenvolvimento de aplicações modernas baseadas em microsserviços. Neste artigo, vamos explorar a criação e configuração de um projeto em Quarkus, abordando desde a escolha da estrutura de projeto até a configuração do ambiente de desenvolvimento. Você aprenderá a usar as ferramentas disponíveis para criar e configurar seu projeto Quarkus, bem como a executá-lo em diferentes ambientes, como desenvolvimento e produção. Com este guia, você estará pronto para começar a construir suas próprias aplicações Quarkus de forma eficiente e escalável.

Para usar o quarkus você precisará de:

  • JAVA JDK 11 ou superior
  • IDE Intellij ou compativel com JAVA e Quarkus
  • Maven na versão mais atualizada, versões antigas podem não rodar o Quarkus.

É possível gerar um projeto Quarkus a partir deste site

Criando e configurando um projeto em Quarkus

Porém faremos um procedimento usando o MAVEN para gerar o nosso projeto. Então vamos ao passo a passo:

  • Acesse o site oficial da aplicação aqui
  • Selecione a opção MAVEN

Criando e configurando um projeto em Quarkus

  • Já na outra página verifique o script de exemplo para create project:

Criando e configurando um projeto em Quarkus

  • Vamos criar o projeto Quarkus usando script que será executado pelo MAVEN:

mvn io.quarkus.platform:quarkus-maven-plugin:2.15.3.Final:create

Onde:

  • io.quarkus.platform
    (O grupo id da aplicação quarkus, local de origem das dependências)
  • quarkus-maven-plugin:2.15.3.Final
    (A versão do plugin maven que ira instalar o quarkus)
  • create
    (O comando que de fato irá ser executado, no caso create = criar projeto)
  • Crie o seu comando mvn conforme a sua necessidade e execute em seu workspace usando o PowerShell ou algo similar CMS DOS, ou ainda GitBash, por exemplo.

Nota: O workspace pode ser qualquer pasta, de preferência vazia, que tenha permissão de leitura e escrita.

Nosso comando ficou assim:

mvn io.quarkus.platform:quarkus-maven-plugin:2.15.3.Final:create

  • O Download será inicializado e irá baixar várias dependências do quarkus em seu diretório, algo parecido com o exemplo abaixo:

Criando e configurando um projeto em Quarkus

  • Após fazer todo o download será solicitado que você informe o group id

Criando e configurando um projeto em Quarkus

No exemplo deste tutorial iremos usar o group id br.com.quarkus.quiz.generator e o projeto irá se chamar quizz-generator-app

  • Então digite o grupo id da sua aplicação neste local – no nosso caso será br.com.quarkus.quiz.generator

Criando e configurando um projeto em Quarkus

  • Aperte Enter e em seguida será solicitado que insira o nome do projeto (ArtifactId). Insira o nome que faça sentido para o seu projeto, no nosso caso será o quizz-generator-app

Criando e configurando um projeto em Quarkus

  • Aperte enter e será solicitado que você informe a versão do projeto, como é um projeto novo iremos colocar 1.0.0

Criando e configurando um projeto em Quarkus

  • Ao pressionar Enter e ir para o próximo passo, o assistente irá solicitar a lista de extensões que você deseja colocar no seu projeto, ou seja, as dependências que irão aparecer no seu pom.xml. Porém, no nosso caso, iremos deixar esse campo em branco e pressionar enter, e só depois colocaremos as dependências de maneira manual. Apenas pressione Enter para continuar!

Criando e configurando um projeto em Quarkus

  • Para finalizar, o assistente pergunta se ao gerar o projeto você quer que seja gerado algum código de exemplo. Para esse nosso tutorial escolha a opção yes

Criando e configurando um projeto em Quarkus

Pode ser que ocorra algum erro ao executar o último procedimento, algo como mostrado na imagem abaixo:

Criando e configurando um projeto em Quarkus

Porém o projeto será gerado mesmo com a apresentação de exceptions na tela. Ignore esse erro e verifique se o projeto está no seu diretório.

  • Se estiver no PowerShell ou Git Brash digite ls e pressione enter para verificar se o seu projeto foi criado

Criando e configurando um projeto em Quarkus

  • Ao acessar a pasta do projeto (cd nome-do-projeto) e solicitar para listar os arquivos (ls), podemos ver toda a estrutura do projeto criado

Criando e configurando um projeto em Quarkus

  • Ponto importante que iremos usar nesse projeto

Repare que o projeto criou uma pasta chamada mvnw ou seja, é o nosso maven warpper, que significa que é um maven atrelado a aplicação para que este sempre tenha um maven na mesma versão. Nós iremos sempre usar esse maven para controlar essa aplicação, desta forma evitamos problemas de incompatibilidade com o versões futuras do maven.

Criando e configurando um projeto em Quarkus

  • Enfim vamos executar nossa aplicação pela primeira vez em modo de desenvolvimento. Para isso precisamos executar o comando mvn compile quarkus:dev dentro da pasta raiz do projeto. Repare que usamos o mvn, ou seja, nesse caso iremos usar o nosso maven da máquina e não o do projeto.
  • Insira o comando a seguir e digite Enter, isso poderá demorar um poupo pois várias dependências serão baixadas

 mvn compile quarkus:dev

Criando e configurando um projeto em Quarkus

  • Ao termino de todo o download será apresentada uma interface próxima a da imagem a seguir:

Criando e configurando um projeto em Quarkus

  • Uma vantagem do quarkus: o hot deployment
    Nesse momento nossa aplicação já está no ar, e uma coisa bem legal é saber que como existe um hot deployment, toda a modificação feita no Quarkus será atualizada em tempo de execução, sem precisar recarregar o sistema como acontece no caso do Springboot ou Spring MVC.
  • Abra o navegador e digite a seguinte url para visualizar a pagina inicial do seu projeto: localhost:8080

Como podemos ver a aplicação está rodando perfeitamente no navegador. Caso tenha problemas ao subir a aplicação, verifique se a porta 8080 não está em uso em localhost

Criando e configurando um projeto em Quarkus

  • A interface do Quarkus é bem legal! Tanto que conseguimos até verificar que existe uma página de RestEasy com um hello world em nossa aplicação. Repare nas últimas linhas do lado esquerdo e clique no link /hello. Você será redirecionado para uma página rest, isso já é uma controller feita no seu projeto com uma estrutura REST.

Criando e configurando um projeto em Quarkus

  • Será direcionado para:

Criando e configurando um projeto em Quarkus

Inserindo o projeto ja IDE Intellij

  • Ao abrir a IDE pela primeira vez, algo próximo ao apresentado na imagem a seguir irá aparecer para você. Note que na imagem de exemplo já temos dois projetos inseridos na IDE, que são o fist-quarkus-project e message-generator. No seu caso esses projetos não existirão pois são projetos que foram feitos à parte deste tutorial.

Criando e configurando um projeto em Quarkus

  • Clique no botão superior do lado direito em OPEN e uma janela será aberta a frente da atual.

Criando e configurando um projeto em Quarkus

Note que na imagem acima a primeira seta mostra o botão que fez abrir o popup de navegação para abrir um projeto já existente – “Open File or Project”. No seu caso navegue até o diretório onde está a sua aplicação Quarkus. Neste tutorial a aplicação está em:

C:\Development\WorkspaceQuarkus\quizz-generator-app

Tenha ciência de que, no seu caso, a pasta não será essa. Estará no local aonde você criou e subiu o projeto via PowerShell, caso não lembre do caminho volte até o PowerShell e verifique o caminho da sua aplicação.

Criando e configurando um projeto em Quarkus

Repare que o campo em destaque tem o mesmo caminho que em minha IDE na seta do meio. Navegue em seu sistema operacional até chegar na pasta do seu sistema.

  • Clique sobre a pasta do projeto para ela ficar selecionada e em seguida clique no botão Ok na parte inferior direita.

Criando e configurando um projeto em Quarkus

Nota:
Não abra a pasta do projeto, apenas clique sobre ela e em OK. Queremos que a IDE reconheça tudo que está dentro da pasta do projeto, por tal motivo não podemos clicar em um arquivo único.

  • Se tudo correu bem, a sua aplicação será carregada como a imagem abaixo. Note que precisamos aguardar o intellij fazer o carregamento de algumas coisas, conforme informado nas setas vermelhas da próxima imagem.

Criando e configurando um projeto em Quarkus

  • Repare que a aplicação já abre com o README.md, e mostra até como podemos subir o Quarkus da maneira correta. Tudo isso logo na nossa pagina de boas vindas!

Criando e configurando um projeto em Quarkus

Pronto! nossa aplicação foi criada e está pronta para receber códigos!

Usando o quarkus dentro do Intellij:

  • Feche o PowerShell anteriormente aberto, ou seja, encerre o Quarkus via PowerShell, pois iremos usar ele agora via intellij e para isso não podemos ter dois aplicativos funcionando ao mesmo tempo.

Observação:
Repare que, diferente do SpringBoot, não temos uma classe de starter com um main. Normalmente no SpringBoot temos uma classe com o mesmo nome do projeto e, dentro dela uma estrutura main para subir o projeto Spring. Como estamos usando Quarkus, isso não existe aqui.

Como podemos ver, não temos a classe com o nome do projeto como seria no SpringBoot

Criando e configurando um projeto em Quarkus

Inserindo dependências no projeto Quarkus

Normalmente projetos modernos em JAVA dão a possibilidade de baixar as dependências do Maven usando o Maven repository. Em uma breve pesquisa no Google, se quisermos baixar o hibernate core para conexão com o banco de dados, por exemplo, acessamos o site do Maven e baixamos a última versão.

Criando e configurando um projeto em Quarkus

  • Ao acessar o site se escolhe uma versão:

Criando e configurando um projeto em Quarkus

  • E inserindo o XML da dependência no pom.xml, teremos a dependência em nosso projeto. Quem está familiarizado com SpringBoot, já conhece esse processo.

Criando e configurando um projeto em Quarkus

  • Porém em quarkus temos uma forma diferente de baixar essas mesmas dependências, usando o comando:

mvnw quarkus:list-externsions

Nós conseguimos ter acesso a lista de extensões, que nada mais são do que o nome dado no Quarkus para as dependências do arquivo pom.xml.

  • Voltando ao Intellij, iremos rodar o comando mvnw quarkus:list-externsions via terminal da IDE. Caso a ide não tenha o terminal disponível na sua interface acesse: View -> Toll Windows -> Terminal Ou Alt F12 para ativar o terminal na sua IDE

O terminal deverá aparecer na parte inferior esquerda da IDE

Criando e configurando um projeto em Quarkus

Importante!
Antes de continuar, tenha ciência de que o terminal está apontando para a pasta raiz do seu projeto. Às vezes o intellij cria essa “trolagem”, nos atrapalhando um pouquinho se no automático esquecermos que não estamos na pasta do projeto. Então verifique se o intellij está apontando para a pasta do seu projeto, caso não, pegue o endereço e navegue até chegar na pasta raiz do seu projeto.

  • O terminal precisa estar na raiz do seu projeto!

Criando e configurando um projeto em Quarkus

  • Digite o comando a seguir para listar todas as extenções do quarkus

mvnw quarkus:list-extensions

No meu caso no powerShell só funcionou com o acréscimo de .\ antes do mvnw:
.\mvnw.cmd quarkus:list-extensions

Detalhe: Repare que usamos mvnw e não mvn, ou seja, o Quarkus irá usar o mvnw do projeto e não o Maven configurado do seu sistema, desta forma o uso será sempre acessando o Maven interno da aplicação.

  • Como podemos ver rodando o comando .\mvnw.cmd quarkus:list-externsions obtivemos o seguinte resultado:

Criando e configurando um projeto em Quarkus

Repare que a lista é enorme!

Criando e configurando um projeto em Quarkus

Conforme vimos na imagem acima, temos uma enorme lista de dependências (chamadas em Quarkus de extensões) que podemos baixar para nossa aplicação.

Inserindo uma extensão (Dependência de projeto) via Quarkus:

  • Na lista gerada anteriormente escolha as dependências que façam sentido para o seu projeto. No meu caso irei escolher a extensão do hibernate
  • Para facilitar a minha busca, selecionei a que foi listada no terminal, copiei todo o seu conteúdo e colei em um bloco de notas:

Use CTRL + F para buscar o nome da dependência, que procura na lista dentro do bloco de notas. No exemplo deste tutorial, nós procuramos a dependência do hibernate:

Criando e configurando um projeto em Quarkus

  • Copie exatamente o nome que está na coluna da esquerda, este será o nome da dependência usada no comando que iremos montar a seguir no terminal do intellij

Criando e configurando um projeto em Quarkus

  • Já no terminal do intellij insira o comando:

./mvnw.cmd quarkus:add-extension -Dextensions=”quarkus-hibernate-envers”

  • Para inserir a dependência no projeto, onde:

./mvnw.cmd quarkus:add-externsion (evoca o comando)
-Dextensions= (local onde se coloca o nome da extensão, precisa estar entre aspas duplas)

Criando e configurando um projeto em Quarkus

  • Ao pressionar enter, caso tudo corra como esperado, a dependência será baixada com sucesso! Note que o intellij já começa o processo de atualizar a dependência no canto inferior direito

Criando e configurando um projeto em Quarkus

  • O intellij é uma ferramenta bem esperta e já coloca para você a sugestão de baixar o JPA Buddy pois detectou dependências que podem precisar dele. Fica a seu critério baixar os plugins de sugestão da IDE.

Criando e configurando um projeto em Quarkus

  • Ao abrir o arquivo pom.xml conseguimos confirmar que a dependência foi realmente baixada pelo Quarkus:

Criando e configurando um projeto em Quarkus

Adicionando várias dependências ao mesmo tempo

  • Para adicionar várias dependências ao mesmo tempo, é necessário apenas separar o nome delas entre virgulas dentro das aspas duplas do comando aprendido anteriormente. Em nosso exemplo a seguir, iremos adicionar mais três dependências ao nosso projeto, sendo elas:

hibernate-orm-panache (Cria entidades e facilita a parte de JPA do projeto)

resteasy-jsonb (Faz a camada REST da aplicação)

quarkus-jdbc-postgresql (Drive de conexão com o banco de dados posgresSQL, caso queira apenas um bd em memória use jdbc-h2 para instalar o H2 que é um banco em memória)

Então o nosso comando ficou assim:

./mvnw.cmd quarkus:add-extension -Dextensions=”hibernate-orm-panache, quarkus-jdbc-postgresql, resteasy-jsonb”

  • Execute o comando no terminal da IDE intellij para baixar todas as dependências necessárias
  • Ao pressionar enter depois de inserir o comando no terminal, teremos o seguinte resultado

Criando e configurando um projeto em Quarkus

  • Vá novamente até o pom.xml para consultar se de fato as dependências foram inseridas no arquivo pom.xml do seu sistema, no caso do sistema do tutorial obtivemos o seguinte resultado

Criando e configurando um projeto em Quarkus

  • Clique em reload na aba lateral Maven para confirmar que o sistema baixou localmente as externsões do sistema (chamadas de dependências em SpringBoot ou bibliotecas academicamente)

Criando e configurando um projeto em Quarkus

Subindo o projeto pela primeira vez dentro do intellij

  • No terminal do intellij digite o seguinte comando e pressione ENTER para inicializar o projeto: ./mvnw.cmd compile quarkus:dev

Importante: note que iremos usar a partir de agoar sempre o comando mvnw e não mais mvn pois usaremos o Maven da aplicação. Outro ponto importante, caso o comando não funcione em seu computador, tente usá-lo removendo o ./ e o .cmd ou seja: mvnw compile quarkus:dev

Criando e configurando um projeto em Quarkus

  • Note que serão baixados vários arquivos, aguarde o final do processo:

Criando e configurando um projeto em Quarkus

  • Ao término do processo você deverá ter algo próximo ao apresentado na imagem a seguir

Criando e configurando um projeto em Quarkus

  • Vá até o navegador e digite a URL localhost:8080 e pressione ENTER para verificar se o sistema subiu de fato como esperado:

Caso tudo tenha corrido bem, a interface inicial do Quarkus será apresentada como abaixo

Criando e configurando um projeto em Quarkus

Ao seguir as orientações apresentadas neste artigo, você pode criar e configurar um projeto em Quarkus de maneira rápida e eficiente. O framework oferece uma ampla gama de recursos e ferramentas para o desenvolvimento de aplicações modernas baseadas em microsserviços, e sua popularidade continua a crescer. Com o conhecimento adquirido aqui, você estará pronto para começar a desenvolver aplicações escaláveis e de alta performance com Quarkus.

Samuel Ferreira Duarte