gradle - 无法实例化接口(interface) 'ElasticsearchClient'

标签 gradle elasticsearch-7

official Elasticsearch docs告诉实例化ElasticsearchClient,如下所示:

ElasticsearchClient client = new ElasticsearchClient(transport);

当我使用 Gradle 构建管理在 Grails 3 应用程序中编写此内容后,我收到以下编译错误:无法实例化接口(interface)“ElasticsearchClient”

import 语句是:import org.elasticsearch.client.ElasticsearchClient。 事实上,ElasticsearchClient 被解析为:

package org.elasticsearch.client;
// ...
public interface ElasticsearchClient {

Gradle 依赖项为:compile 'org.elasticsearch:elasticsearch:7.17.2'

  1. 他们为什么建议在文档中实例化接口(interface)?
  2. 我该怎么做才能使其编译并使用 Elasticsearch 客户端?

最佳答案

原因是:ElasticsearchClient 被错误解析为仍位于我本地用户的 .gradle 目录中的旧的 elasticsearch JAR 文件。从 .gradle 中删除旧 JAR 使我能够进行正确的导入。

正确的导入是 导入 co.elastic.clients.elasticsearch.ElasticsearchClient 代替 导入org.elasticsearch.client.ElasticsearchClient

关于gradle - 无法实例化接口(interface) 'ElasticsearchClient',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71954556/

相关文章:

ant - Gradle failOnError用于默认ant任务

eclipse - 你如何集成 gradle 和 jboss 6 来生成工作的 eclipse 项目

elasticsearch - 如何将simplequerystring与bool/must结合

elasticsearch - ElasticSearch查询速度慢,并且第一次查询总是花费太多时间

java - 安装 SDK 25 时,无法找到哈希字符串 'android-25' 的目标不会消失

android - Android:首次从命令行运行应用

android - 错误:具有配置 ' '的attr/style的值重复

elasticsearch - 俄罗斯词霸的搜索结果错误

ElasticSearch 启动错误——默认发现设置不适合生产使用;

elasticsearch - Kibana 和 elasticsearch 正则表达式不起作用