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

jbang – Мощь сценариев оболочки для Java

Всякий раз, когда появляется новая библиотека Java, разработчикам было бы интересно опробовать ее. Однако иногда так и бывает… Помеченный как java, script.

Всякий раз, когда появляется новая библиотека Java, разработчикам было бы интересно опробовать ее. Однако иногда бывает сложно настроить проект в IDEA или как проект maven вместе с зависимостями. Конечно, пути к классам можно задать в командной строке, но это все равно громоздко для ленивых разработчиков 😉

j bang здесь, чтобы прийти на помощь!

Настройка проекта для тестирования библиотеки или запуска Java-файла с jbang уйдет в прошлое!

Конечно, у Java есть оболочка, но jbang, похоже, лучше во многих отношениях.

банк – это аккуратный маленький инструмент, написанный Максом Райдалом Андерсеном (maxandersen), тот

  • позволяет запускать java в виде скриптов в любом месте
  • позволяет запускать java в виде скриптов в любом месте с помощью java или shell
  • помощь в тестировании любого Java API без необходимости установки, настройки или настройки проекта для Maven, Gradle или любая другая система сборки

Краткий список функций jbang – это

  • Требуется Java 8 или выше, но Рекомендуется использовать Java 11
  • Объявления зависимостей через //DEPS group:артефакт:версия или @Grab аннотации
  • Параметры компиляции и выполнения с помощью //JAVAC_OPTIONS <флаги> и //JAVA_OPTIONS <флаги>
  • Поддерживает платформы – Windows, Linux и Mac
  • Прозрачный запуск приложения JavaFX на Java 8 и выше
  • И многое другое…

Теперь давайте быстро увидим силу jbang! Давайте попробуем хорошую библиотеку – |/Jsoup – это библиотека Java, которая предоставляет очень удобные API для извлечения URL-адресов, извлечения и управления HTML-контентом с использованием методов DOM и селекторов CSS, или, короче говоря, синтаксиса, подобного jQuery, для работы с DOM.

Во-первых, нам нужно будет инициализировать класс jbang с помощью

jibing init hellojsoup.java

Это создало бы hellojsoup.java файл с классом hellojsoup с методом main

В верхней части файла также есть команды для Unix ! дело и декларация DEPS

Объявление DEPS представляет собой комментарий, в котором мы указываем gradle-подобные зависимости формата – groupId: артефактИд: версия

В нашем случае это будет org.jsoup: jsoup:1.13.1

Вот код, который выполняет простой вызов Википедии и отображает заголовки в разделе новостей. Это слегка измененная версия, приведенная на сайте Jsoup.

//usr/bin/env jbang "$0" "$@" ; exit $?
//DEPS org.jsoup:jsoup:1.13.1

import static java.lang.System.*;
import org.jsoup.nodes.Document;
import org.jsoup.Jsoup;
import org.jsoup.select.Elements;
import org.jsoup.nodes.Element;

public class hellojsoup {

    public static void main(String... args) throws Exception {
        Document doc = Jsoup.connect("https://en.wikipedia.org/").get();
        out.println(doc.title());
        Elements newsHeadlines = doc.select("#mp-itn b a");
        for (Element headline : newsHeadlines) {
          out.println(String.format("%s\n\t%s", headline.attr("title"), headline.absUrl("href")));
        }
    }
}

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

банковский бег hellojsoup.java

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

Wikipedia, the free encyclopedia
2020 Twitter bitcoin scam
        https://en.wikipedia.org/wiki/2020_Twitter_bitcoin_scam
2020 Armenian?Azerbaijani skirmishes
        https://en.wikipedia.org/wiki/2020_Armenian%E2%80%93Azerbaijani_skirmishes
C/2020 F3 (NEOWISE)
        https://en.wikipedia.org/wiki/C/2020_F3_(NEOWISE)
Portal:Current events
        https://en.wikipedia.org/wiki/Portal:Current_events
Deaths in 2020
        https://en.wikipedia.org/wiki/Deaths_in_2020
Wikipedia:In the news/Candidates
        https://en.wikipedia.org/wiki/Wikipedia:In_the_news/Candidates

Чтобы попробовать этот код для себя, вот reply.it

Удивительная часть jbang заключается в том, что это так просто и легко. Я считаю, что это делается не только для того, чтобы опробовать библиотеки, но и для того, чтобы стать инструментом, который в будущем также будет широко использоваться в производстве, особенно. в микросервисах и бессерверных приложениях. Никакой сложной настройки сервера, просто один-единственный Java-файл отлично справляется со своей задачей.

В нем есть много примеров, включая vertx, undertow, JavaFX, resteasy, rat pack и многое другое. Он также поддерживает все основные идеи.

Для получения более подробной информации и документации перейдите по ссылке https://github.com/jbangdev/jbang

jdk выглядит более многообещающим, и было бы неудивительно, если бы он был включен в JDK в будущем. Дайте ему попробовать!

Титры изображений: Pixabay

Оригинал: “https://dev.to/rprabhu/jbang-the-power-of-shell-scripting-for-java-41f3”