Как собрать клиент Livy на Windows?

Я хочу написать Java-приложение для Windows, которое использует Java API Livy для связи с сервером Apache Livy, который размещен удаленно. Документы говорят:

Добавьте зависимость клиента Livy к POM вашего приложения:

<dependency>
  <groupId>org.apache.livy</groupId>
  <artifactId>livy-client-http</artifactId>
  <version>0.4.0-SNAPSHOT</version>
</dependency>

Примечание: до первого выпуска Apache от Livy вам придется устанавливать артефакты livy локально, используя mvn install

К сожалению, похоже, что сборка Livy на Windows не поддерживается. Кто-нибудь успешно построил клиент Livy на Windows?

1 ответ

Решение

Все, о чем я заботился, - это заставить livy-client-http создать и установить в мой локальный репозиторий maven .m2. Это то, что я сделал в Windows 7:

git clone инкубатор-Ливи затем закомментировать этот раздел в его pom.xml (благодарность Яцхашу):

<requireOS>
    <family>unix</family>
</requireOS>

Бежать mvn install -DskipTests в каталоге верхнего уровня. Если вы сделаете это из обычной командной строки Windows, в конечном итоге произойдет сбой с этой ошибкой:

[ОШИБКА] Не удалось выполнить цель org.apache.maven.plugins:maven-antrun-plugin:1.8: выполнить (по умолчанию) на проекте livy-server: возникла исключительная ситуация Ant BuildException: выполнить не удалось: java.io.IOException: не удалось запустить программа "bash" (в каталоге "C:\github.com\ инкубатор-livy\server"): ошибка CreateProcess =2, система не может найти указанный файл [ОШИБКА] вокруг Ant-части...... @ 4:27 в C: \ github.com \ инкубатор-ливи \ сервер \ цель \antrun\build-main.xml

Но если вы запустите ту же команду в командной строке Git Bash, вы можете обойти эту ошибку. В конце концов, сборка завершится неудачей при тестировании livy-интеграции, но по крайней мере сборка livy-client-http должна была пройти.

Но вы обнаружите, что этот jar будет установлен в вашем хранилище.m2: livy-client-http-0.4.0-инкубационный-SNAPSHOT.jar. Это означает, что вам нужно изменить зависимость вашего собственного клиентского приложения так, чтобы она выглядела так, как указано в документации Livy:

<dependency>
    <groupId>org.apache.livy</groupId>
    <artifactId>livy-client-http</artifactId>
    <version>0.4.0-incubating-SNAPSHOT</version>
</dependency>

Мне также пришлось добавить эту зависимость в мое клиентское приложение, потому что я хотел общаться с сервером Spark 2.1 через Livy:

<dependency>
    <!-- See https://spark.apache.org/docs/2.1.0/programming-guide.html#linking-with-spark -->
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.11</artifactId>
    <version>2.1.0</version>
</dependency>

Тогда мое клиентское приложение будет компилироваться в Windows.

Другие вопросы по тегам