英文:
Building elasticsearch from Source (Task :benchmarks:compileJava FAILED)
问题
以下是翻译好的部分:
尝试从源代码构建Elasticsearch。
刚刚安装了OpenJAVA-11-sdk和jre。
下面是`java`和`javac`以及`echo $PATH`的输出。
rajesh@Rajesh-PC:~/elasticsearch$ ./gradlew assemble
=======================================
Elasticsearch构建Hamster问好!
Gradle版本 :6.5
操作系统信息 :Linux 4.15.0-111-generic(amd64)
JDK版本 :11(JDK)
JAVA_HOME :/usr/lib/jvm/java-11-openjdk-amd64
随机测试种子 :48BEB2A1EC142E2C
在FIPS 140模式下 :false
=======================================
> Task :build-tools:jar
:build-tools:jar:找到了elasticsearch.enforce-deprecation-use-failures.properties的有效插件描述符,但在jar中未找到实现类org.elasticsearch.gradle.EnforceDeprecationFailuresPlugin。
> Task :benchmarks:compileJava 失败
警告:没有处理器声称拥有这些注释:java.base/java.lang.SuppressWarnings,java.base/java.lang.Override
错误:发现警告并指定了-Werror
1个错误
1个警告
> Task :modules:lang-mustache:compileJava
注意:/home/rajesh/elasticsearch/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/MustacheScriptEngine.java使用或覆盖了已弃用的API。
注意:重新编译时使用-Xlint:deprecation获取详细信息。
失败:任务“:benchmarks:compileJava”的执行失败。
* 出现了什么问题:
编译失败,请查看编译器错误输出以获取详细信息。
* 尝试:
使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。使用--scan运行以获取完整的洞察。
* 在https://help.gradle.org获取更多帮助
15秒内构建失败
77个可执行任务:17个已执行,60个最新
rajesh@Rajesh-PC:~/elasticsearch$ java -version
openjdk版本"11.0.7" 2020-04-14
OpenJDK运行时环境(构建11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64位服务器VM(构建11.0.7+10-post-Ubuntu-2ubuntu218.04,混合模式,共享)
rajesh@Rajesh-PC:~/elasticsearch$ javac -version
javac 11.0.7
rajesh@Rajesh-PC:~/elasticsearch$ echo $PATH
/usr/lib/jvm/java-11-openjdk-amd64/bin:/usr/local/cuda-9.0/bin:/home/rajesh/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
<details>
<summary>英文:</summary>
Trying build Elasticsearch from source.
Just installed OpenJAVA-11-sdk & jre.
below are `java` & `javac` & `echo $PATH` outputs as well.
rajesh@Rajesh-PC:~/elasticsearch$ ./gradlew assemble
=======================================
Elasticsearch Build Hamster says Hello!
Gradle Version : 6.5
OS Info : Linux 4.15.0-111-generic (amd64)
JDK Version : 11 (JDK)
JAVA_HOME : /usr/lib/jvm/java-11-openjdk-amd64
Random Testing Seed : 48BEB2A1EC142E2C
In FIPS 140 mode : false
=======================================
> Task :build-tools:jar
:build-tools:jar: A valid plugin descriptor was found for elasticsearch.enforce-deprecation-use-failures.properties but the implementation class org.elasticsearch.gradle.EnforceDeprecationFailuresPlugin was not found in the jar.
> Task :benchmarks:compileJava FAILED
warning: No processor claimed any of these annotations: java.base/java.lang.SuppressWarnings,java.base/java.lang.Override
error: warnings found and -Werror specified
1 error
1 warning
> Task :modules:lang-mustache:compileJava
Note: /home/rajesh/elasticsearch/modules/lang-mustache/src/main/java/org/elasticsearch/script/mustache/MustacheScriptEngine.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':benchmarks:compileJava'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 15s
77 actionable tasks: 17 executed, 60 up-to-date
rajesh@Rajesh-PC:~/elasticsearch$ java -version
openjdk version "11.0.7" 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Ubuntu-2ubuntu218.04)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Ubuntu-2ubuntu218.04, mixed mode, sharing)
rajesh@Rajesh-PC:~/elasticsearch$ javac -version
javac 11.0.7
rajesh@Rajesh-PC:~/elasticsearch$ echo $PATH
/usr/lib/jvm/java-11-openjdk-amd64/bin:/usr/local/cuda-9.0/bin:/home/rajesh/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
</details>
# 答案1
**得分**: 3
**查看错误,似乎存在编译错误,很可能是由于JDK版本引起的,因为您的`JAVA_HOME`指向JDK 11。**
以下是解决此问题的方法:
1. 如果您已经克隆了最新的Elasticsearch源代码,从[https://github.com/elastic/elasticsearch][1],那么要构建Elasticsearch,需要JDK 14。然而,由于Elasticsearch支持JDK 11,因此构建支持使用JDK 14编译并在JDK 11运行时进行测试。
2. 安装JDK 14并将`JAVA_HOME`设置为JDK 14安装的Java主目录后,再次使用以下命令运行Elasticsearch源代码:`./gradlew :run`。
3. 一旦进程完全启动,然后在另一个窗口中运行curl,如下所示:
`curl -u elastic:password localhost:9200`
要获取详细的解释,请参考[CONTRIBUTING.md][2]
[1]: https://github.com/elastic/elasticsearch
[2]: https://github.com/elastic/elasticsearch/blob/master/CONTRIBUTING.md#contributing-to-the-elasticsearch-codebase
<details>
<summary>英文:</summary>
**Looking at the errors, it seems like there is a compilation error which is most probably because of the JDK version, as your `JAVA_HOME` is pointing to JDK 11.**
Here are the ways by which you can resolve the issue :
1. If you have cloned the latest Elasticsearch source code from [https://github.com/elastic/elasticsearch][1], then to build Elasticsearch, JDK 14 is required. However, since Elasticsearch supports JDK 11, the build supports compiling with JDK 14 and testing on a JDK 11 runtime.
2. After installing JDK 14, and setting `JAVA_HOME` pointing to Java home of JDK 14 installation, run Elasticsearch source code with this command again `./gradlew :run`.
3. Once the process is fully started, then run curl in another window like this
`curl -u elastic:password localhost:9200`
To get a detailed explanation refer this [CONTRIBUTING.md][2]
[1]: https://github.com/elastic/elasticsearch
[2]: https://github.com/elastic/elasticsearch/blob/master/CONTRIBUTING.md#contributing-to-the-elasticsearch-codebase
</details>
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论