我正试图从源头构建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?
发布于 2018-05-06 02:26:42
当弹搜索说它只需要Java 8时,它实际上意味着Java8足以运行Elasticsearch。构建Elasticsearch完全不同,似乎需要Java 10 (我假设使用Java 10功能)。因此,如果您想要从源代码构建Elasticsearch,就必须升级到Java 10。
发布于 2019-12-20 18:56:12
编译、运行时需要多个java版本,而构建Elasticsearch需要testing.JDK 13。您必须有一个JDK 13安装,环境变量JAVA_HOME为您的JDK 13安装提供指向JAVA_HOME的路径。默认情况下,测试使用与JAVA_HOME相同的运行时。但是,由于Elasticsearch支持JDK 11,所以构建支持使用JDK 13进行编译并在JDK 11运行时上进行测试;为此,设置指向JDK 11安装的Java的RUNTIME_JAVA_HOME。请注意,此机制也可用于对其他JDK进行测试,这不仅限于JDK 11。
注意:还需要有JAVA8_HOME、JAVA9_HOME、JAVA10_HOME和JAVA11_HOME以及JAVA12_HOME,这样测试才能通过。
资料来源:https://discuss.elastic.co/t/unable-to-build-elasticsearch-from-source-on-mac-could-not-set-unknown-property-excludes/191394和https://github.com/elastic/elasticsearch/blob/master/CONTRIBUTING.md#contributing-to-the-elasticsearch-codebase阅读这些内容对我理解这个构建错误以及为什么不同版本需要不同的env变量非常有帮助。希望它能帮助任何人在同样的问题上跌跌撞撞。
https://stackoverflow.com/questions/50195428
复制相似问题