Сборка Elasticsearch из исходного кода, но она требует Java 10 - PullRequest
0 голосов
/ 06 мая 2018

Я пытаюсь собрать Elasticsearch из источника. Сегодня я клонировал из репозитория GitHub , и я следую инструкциям в разделе " Построение из источника ".

Запуск ./gradlew assemble выдает следующую ошибку:

...
> Configure project :benchmarks
=======================================
Elasticsearch Build Hamster says Hello!
=======================================
  Gradle Version        : 4.7
  OS Info               : Linux 4.4.0-112-generic (amd64)
  JDK Version           : Oracle Corporation 1.8.0_161 [Java HotSpot(TM) 64-Bit Server VM 25.161-b12]
  JAVA_HOME             : /usr/lib/jvm/java-8-oracle
  Random Testing Seed   : 5554B47DBBCF3CFB
Project evaluation failed including an error in afterEvaluate {}. Run with --stacktrace for details of the afterEvaluate {} error.

FAILURE: Build failed with an exception.

* Where:
Build file '<redacted>/elasticsearch-master/benchmarks/build.gradle' line: 31

* What went wrong:
A problem occurred evaluating project ':benchmarks'.
> Failed to apply plugin [id 'elasticsearch.build']
   > the environment variable JAVA_HOME must be set to a JDK installation directory for Java 1.10 but is [/usr/lib/jvm/java-8-oracle] corresponding to [1.8]
...

Запуск sudo ./gradlew assemble выдает другую ошибку:

FAILURE: Build failed with an exception.

* Where:
Build file '<redacted>/elasticsearch-master/benchmarks/build.gradle' line: 31

* What went wrong:
A problem occurred evaluating project ':benchmarks'.
> Failed to apply plugin [id 'elasticsearch.build']
   > JAVA_HOME must be set to build Elasticsearch

Но, насколько я могу судить, мой JAVA_HOME установлен:

$ echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

$ sudo echo $JAVA_HOME
/usr/lib/jvm/java-8-oracle

$ ls /usr/lib/jvm/java-8-oracle
bin  COPYRIGHT  db  include  javafx-src.zip  jre  lib  LICENSE  man  README.html  release  src.zip  THIRDPARTYLICENSEREADME-JAVAFX.txt  THIRDPARTYLICENSEREADME.txt

Другая, возможно, полезная информация:

$ java -version
java version "1.8.0_161"
Java(TM) SE Runtime Environment (build 1.8.0_161-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.161-b12, mixed mode)

$ gradle -v

------------------------------------------------------------
Gradle 4.7
------------------------------------------------------------

Build time:   2018-04-18 09:09:12 UTC
Revision:     b9a962bf70638332300e7f810689cb2febbd4a6c

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          1.8.0_161 (Oracle Corporation 25.161-b12)
OS:           Linux 4.4.0-112-generic amd64

Я использую Ubuntu 16.04.

Кто-нибудь знает, как исправить эту ошибку (или, альтернативно, как я могу собрать последнюю версию Elasticsearch из исходного кода), без обновления до Java 10?

1 Ответ

0 голосов
/ 06 мая 2018

Я в конце концов понял это. В ретроспективе это звучало глупо, но я оставляю его с этим ответом на случай, если кто-то посчитает его полезным.

Когда Elasticsearch говорит, что ему требуется только Java 8 , это фактически означает, что Java 8 достаточна для запуска Elasticsearch. Сборка Elasticsearch совершенно другой и, кажется, требует Java 10 (я бы предположил, что используются функции Java 10). Так что, если вы хотите собрать Elasticsearch из исходного кода, вам нужно перейти на Java 10.

...