我是 gradle 新手,克隆了 Apache elasticsearch 项目。在过去的 3 天里,我一直在为它苦苦挣扎,但无法在 Eclipse 中进行编译。我想运行它并调试代码以了解它是如何工作的。我已经在终端中成功编译,但无法在 eclipse 中完成。 到目前为止我尝试过的步骤:
- 在终端中运行 gradle eclipse 并将其作为现有项目导入到 eclipse 中。现在它开始构建工作区,但我仍然无法运行 ElasticSearch.java 类的主要方法。它说没有可用的主要类型。
- 将项目导入为 gradle 项目,但随后抛出异常“无法解析 DependencySubstitutions,这是 gradle 核心 jar 中的一个类。
将其转换为 gradle 项目时抛出异常。
startup failed:
build file '/Users/rakshitsareen/Development/elasticsearch/build.gradle': 141: unable to resolve class DependencySubstitutions
@ line 141, column 47.
rategy.dependencySubstitution { Dependen
^
1 error
Could not fetch model of type 'HierarchicalEclipseProject' using Gradle distribution 'https://services.gradle.org/distributions/gradle-2.2.1-bin.zip'.
构建项目时抛出的异常
Errors occurred during the build.
Errors running builder 'Java Builder' on project 'elasticsearch'.
java.lang.NullPointerException
最佳答案
(注意:我必须在这方面做更多的工作。它在某些时候起作用,现在不是)
我知道你的问题已经有两年了,它不是关于 elasticsearch 6.x 的,但是一个搜索引擎把我带到了这里,因为在让 elasticsearch 和 eclipse 和 gradle 工作之前我有点挣扎,这里是我的笔记:
取elasticsearch的contributing readme严重的,它说(对于 elasticsearch 6.x):
For Eclipse, the minimum version that we support is Eclipse Oxygen (version 4.7).
在使用eclipse之前,让gradle为eclipse构建一些东西:
git/elasticsearch $ ./gradlew eclipse
这应该导致 BUILD SUCCESSFUL
。
现在转到 Help->Eclipse_Marketplace
并搜索 buildship
。安装它——它在 eclipse 中启用 gradle 支持。
现在 File->import->gradle
并选择 elasticsearch 的 git repo 的目录。当 Import options
窗口显示时,勾选 Override workspace settings
并将 Java home
指向您的 Java 11 安装(例如“/usr/lib/jvm/java-11-openjdk-amd64/"),它不会用之前的java版本编译。
如果弹出窗口显示“需要 Groovy 开发人员工具”(或左右),请单击 show solutions
,这会将您带到市场并显示 groovy dev
插件.安装它。
就是这样!
你可以看到“Gradle tasks”和“Gradle executions”选项卡,在这里你可以执行测试,查看问题等。你可以找到源代码并使用代码助手。您可以设置断点和愉快的调试。
注意:至少对我来说,事情需要时间,特别是因为 eclipse 和 gradle-wrapper 占用了 4 GB 的 RAM,使我的系统进入交换状态。但请耐心等待,它最终会起作用。
关于java - 在eclipse中编译elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37035995/