Installation
editInstallation
editRequirements:
- Java 8 or later.
- A JSON object mapping library to allow seamless integration of your application classes with the Elasticsearch API. The Java client has support for Jackson or a JSON-B library like Eclipse Yasson.
Releases are hosted on Maven Central. If you are looking for a SNAPSHOT version, the Elastic Maven Snapshot repository is available at https://snapshots.elastic.co/maven/.
Installation in a Gradle project by using Jackson
editdependencies { implementation 'co.elastic.clients:elasticsearch-java:8.0.1' implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.3' // Needed only if you use the spring-dependency-management // and spring-boot Gradle plugins implementation 'jakarta.json:jakarta.json-api:2.0.1' }
See Spring Boot and jakarta.json for additional details. |
Installation in a Maven project by using Jackson
editIn the pom.xml
of your project, add the following repository definition and
dependencies:
<project> <dependencies> <dependency> <groupId>co.elastic.clients</groupId> <artifactId>elasticsearch-java</artifactId> <version>8.0.1</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.3</version> </dependency> <!-- Needed only if you use the spring-boot Maven plugin --> <dependency> <groupId>jakarta.json</groupId> <artifactId>jakarta.json-api</artifactId> <version>2.0.1</version> </dependency> </dependencies> </project>
See Spring Boot and jakarta.json for additional details. |
Spring Boot and jakarta.json
editSpring Boot comes with Gradle and Maven plugins to ease development and dependency management. These plugins define built-in versions for a number of well-known libraries.
One these libraries is jakarta.json:json-api
that defines the standard Java JSON API. In version 1.x
this library used the javax.json
package, while in version 2.x
it uses the jakarta.json
package after the transition from JavaEE to JakartaEE.
The Java API Client depends on version 2.0.1
of this library, in order to use the newer and future-proof jakarta.json
package. But Spring Boot’s Gradle plugin (at least in version 2.6
and below) overrides the Java API Client’s dependency to use version 1.1.6
in the older javax.json
namespace.
This is why you have to explicitly add the jakarta.json:jakarta.json-api:2.0.1
dependency. Otherwise, this will result in the following exception at runtime: java.lang.ClassNotFoundException: jakarta.json.spi.JsonProvider
.
If your application also requires javax.json
you can add the javax.json:javax.json-api:1.1.4
dependency, which is equivalent to jakarta.json:jakarta.json-api:1.1.6
.