安装
编辑安装编辑
要求
- Java 8 或更高版本。
- 一个 JSON 对象映射库,以允许您的应用程序类与 Elasticsearch API 无缝集成。Java 客户端支持 Jackson 或 JSON-B 库,例如 Eclipse Yasson。
发行版托管在 Maven 中央仓库。如果您正在寻找快照版本,Elastic Maven 快照存储库位于 https://snapshots.elastic.co/maven/。
使用 Jackson 在 Gradle 项目中安装编辑
dependencies { implementation 'co.elastic.clients:elasticsearch-java:8.14.3' implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.0' }
使用 Jackson 在 Maven 项目中安装编辑
在您的项目 pom.xml
中,添加以下存储库定义和依赖项
<project> <dependencies> <dependency> <groupId>co.elastic.clients</groupId> <artifactId>elasticsearch-java</artifactId> <version>8.14.3</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.17.0</version> </dependency> </dependencies> </project>
如果您遇到 ClassNotFoundException: jakarta.json.spi.JsonProvider编辑
在设置依赖项后,您的应用程序可能会遇到 ClassNotFoundException: jakarta.json.spi.JsonProvider
错误。
如果出现这种情况,您需要显式添加 jakarta.json:jakarta.json-api:2.0.1
依赖项。
Gradle
dependencies { ... implementation 'jakarta.json:jakarta.json-api:2.0.1' }
Maven
<project> <dependencies> ... <dependency> <groupId>jakarta.json</groupId> <artifactId>jakarta.json-api</artifactId> <version>2.0.1</version> </dependency> </dependencies> </project>
为什么需要这样做?
一些框架(如 Spring Boot 或 Helidon)带有自己的 Gradle 和 Maven 插件或 Maven BOM 文件,以简化开发和依赖项管理。这些插件和 BOM 定义了要用于许多知名库的版本。
这些库之一可以是 jakarta.json:json-api
,它定义了标准的 Java JSON API。在 1.x
版本中,该库使用 javax.json
包,而在 2.x
版本中,它在 从 JavaEE 过渡到 JakartaEE 之后使用 jakarta.json
包。
Java API 客户端依赖于该库的 2.0.1
版本,以便使用较新且面向未来的 jakarta.json
包。但一些构建插件和 BOM 会覆盖 Java API 客户端的依赖项,以便在旧的 javax.json
命名空间中使用 1.x
版本,从而导致 ClassNotFoundException: jakarta.json.spi.JsonProvider
错误。
添加正确的版本作为顶级项目依赖项可以解决此问题。
如果您的应用程序还需要 javax.json
,您可以添加 javax.json:javax.json-api:1.1.4
依赖项,它等效于 jakarta.json:jakarta.json-api:1.1.6
。