Рубрики
Без рубрики

С помощью Quarkus как в качестве приложения командной строки

Несмотря на большой фреймворк для ВЕБ-разработки, разработки небольших программ с Quarku… Помеченный java, кварками, pt br, бразильскими разработчиками.

Несмотря на большой фреймворк для ВЕБ-разработки, разработки небольших программ с Quarkus было сложной задачей, и, полный gambiarras альтернативные решения. В конце концов, Quarkus был всего лишь фреймворк для ВЕБ-разработки.

Если разработчик хотел сделать программу, которая comessasse выполняется сразу после вызова и finalizasse после этого необходимо использовать некоторые gambiarras альтернативные решения .

Кроме того, не существует простой способ передать параметры для приложения, и даже как сделать pipe на смертную казнь.

Это изменилось с версия 1.4 Quarkus. Ека версао вызывает вариаса мельхориаса, вход в режим командования ( командный режим ). В этой статье мы рассмотрим, что это за command mode и один маленький шаг-в-шаг, как его использовать.

Режим команды Quarkus позволяет позволяет поднять приложения Quarkus без endpoints для REST и получать параметры из командной строки. Это позволяет программировать сценарии или приложения командной commando принимая все силы framework Quarkus .

Как и все приложения Quarkus, чтобы использовать, достаточно просто добавить хорошего в файле pom.xml.


    
      
        io.quarkus
        quarkus-universe-bom
        1.5.2.Final
        pom
        import
      
    

Тамбем нет pom.xml баста адиционар, а зависимость есть кваркус-арк .

 
      io.quarkus
      quarkus-arc
 

Уже в части кода, просто добавьте заметки @QuarkusMain класс entrypoint применение и сделать ее реализации интерфейса QuarkusApplication и Voila . Все функции Quarkus доступны для нас использовать.

На этом, это только скомпилировать с помощью команды

mvn clean install

и применение будет в пределах каталог ./target . Готов быть вызван с помощью “java -jar”.

В этом небольшом примере, есть два класса: ExamploModoComando и ServicoInjetado.

Классный экзамен по диплому командования носса класса де точка входа . Программа начнет работать с его метод run. Есть и другие способы вызвать этот метод, и могут быть найдены в официальные документы .

Уже класса ServicoInjetado является управляемым bean. Поэтому нужно аннотации @Dependent и @PostConstruct вызывается (если вы-новичок, не нужно слишком много думать о том, почему это так).

import javax.inject.Inject;

import io.quarkus.runtime.QuarkusApplication;
import io.quarkus.runtime.annotations.QuarkusMain;

@QuarkusMain
public class ExamploModoComando implements QuarkusApplication {

  @Inject
  ServicoInjetado servico;

  @Override
  public int run(String... args) throws Exception {

    if (args.length > 0) {
      servico.chamar(args[0]);
    } else {
      servico.chamar("");
    }

    return 0;
  }
}
import javax.annotation.PostConstruct;
import javax.enterprise.context.Dependent;

@Dependent
public class ServicoInjetado {

  @PostConstruct
  void postConstruct() {
    System.out.println("Sou um serviço injetado que funciona perfeitamente com CDI!");
  }


  void chamar(String variavel) {
    System.out.println("Fui chamado com a variável: " + variavel);
  }
}

Работает этот класс, используя “java -jar”, у нас есть следующий результат:

 java -jar ./target/code-with-quarkus-1.0.0-SNAPSHOT-runner.jar Parâmetro 
__  ____  __  _____   ___  __ ____  ______ 
 --/ __ \/ / / / _ | / _ \/ //_/ / / / __/ 
 -/ /_/ / /_/ / __ |/ , _/ ,< / /_/ /\ \   
--\___\_\____/_/ |_/_/|_/_/|_|\____/___/   
2020-07-06 19:00:30,838 INFO  [io.quarkus] (main) code-with-quarkus 1.0.0-SNAPSHOT on JVM (powered by Quarkus 1.5.2.Final) started in 0.191s. 
2020-07-06 19:00:30,852 INFO  [io.quarkus] (main) Profile prod activated. 
2020-07-06 19:00:30,852 INFO  [io.quarkus] (main) Installed features: [cdi]
Sou um serviço injetado que funciona perfeitamente com CDI!
Fui chamado com a variável: Parâmetro
2020-07-06 19:00:30,855 INFO  [io.quarkus] (main) code-with-quarkus stopped in 0.003s

Командный режим уже включен по умолчанию

Класс сделанная по генератор quarkus имеет, как зависимость quarkus-resteasy то, что уже приносит quarkus-арк как транзитивные зависимости.

Как сделать выход чистой

Хорошее приложение командной строки, ничего не говорит, если нет ничего удивительного сказать . Для того, чтобы удалить журналов размещены только изменить файл application.proprties и добавить следующий текст.

quarkus.log.level=SEVERE
quarkus.hibernate-orm.log.sql=false
quarkus.banner.enabled=false

Это изменит выход из программы что-то типа:

java -jar ./target/code-with-quarkus-1.0.0-SNAPSHOT-runner.jar Parâmetro
Sou um serviço injetado que funciona perfeitamente com CDI!
Fui chamado com a variável: Parâmetro

Как передать параметры в режиме разработки

Нормальное состояние, решение проблемы, выполнение команды mvn quarkus:разработчик . Для передачи параметров, просто используйте параметр -Dquarkus.args=параметр .

Это позволяет debugar , приносит hot reload изменяет профиль dev между прочим. Код-код, в котором выполняется команда и результат будет более или менее следующее:

mvn quarkus:dev -Dquarkus.args=Parâmetro
executing mvnw instead of mvn
[INFO] Scanning for projects...
[INFO] 
[INFO] ---------------------< org.acme:code-with-quarkus >---------------------
[INFO] Building code-with-quarkus 1.0.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- quarkus-maven-plugin:1.5.2.Final:dev (default-cli) @ code-with-quarkus ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 2 source files to /home/aleatorio/VisualCodeProjects/postagem_quarkus/quarkus-command-mode/target/classes
Listening for transport dt_socket at address: 5005
Sou um serviço injetado que funciona perfeitamente com CDI!
Fui chamado com a variável: Parâmetro
Quarkus application exited with code 0
Press Enter to restart or Ctrl + C to quit

Я уже использовал некоторые gambiarras альтернативные решения, потому что я хотел использовать все преимущества Quarkus в маленькие программы и утилиты для день-в-день. Режим команда пришла, как перчатка для меня. Еще больше, когда я могу скомпилировать приложение в основном режиме, чтобы иметь программу, маленький и быстрый .

Признаюсь, я не использую скрипты extramemnte просто, так как предпочитаю использовать прямой bash. Но в небольших программ и утилит, более сложные я использовал довольно Quarkus в командной строке, и был отличный опыт.

Ах , о кодиго де ходже, поди, не вступай в противоречие с ними, но мерзавец .

Оригинал: “https://dev.to/lucasscharf/usando-o-quarkus-como-como-uma-aplicacao-de-linha-de-comando-973”