Optimizely will be sunsetting Full Stack Experimentation on July 29, 2024. See the recommended Feature Experimentation migration timeline and documentation.

Dev GuideAPI Reference
Dev GuideAPI ReferenceUser GuideGitHubNuGetDev CommunitySumbit a ticketLog In
GitHubNuGetDev CommunitySumbit a ticket

Install SDK

This topic describes the steps necessary to install the Optimizely Java SDK.

The Java SDK is distributed through Maven Central and is created with source and target compatibility of Java 1.8. The core-api and httpclient packages are optimizely-sdk-core-api and optimizely-sdk-httpclient, respectively.

core-api requires org.slf4j:slf4j-api:1.7.16 and a supported JSON parser. We currently integrate with these parsers (listed in their selection order priority):

  1. Jackson
  2. GSON
  3. json.org
  4. json-simple

If more than one of these parsers are available at runtime, the core-api chooses one for use per the selection order priority. If none of these packages are already provided in your project's classpath, you must add one.

📘

Moving to MavenCentral

Optimizely previously distributed the Java SDK through Bintray/JCenter. But, as of April 27, 2021, Bintray/JCenter will become a read-only repository indefinitely. The publish repository has been migrated to MavenCentral for the SDK version 3.8.1 or later. Older versions will still be available in JCenter.

To install, place the following in your build.gradle and substitute {VERSION} for the latest SDK version available via MavenCentral.

repositories {
    mavenCentral()
    jcenter()
}

dependencies {
    compile 'com.optimizely.ab:core-api:{VERSION}'
    // Example: compile 'com.optimizely.ab:core-api:3.10.0'
    compile 'com.optimizely.ab:core-httpclient-impl:{VERSION}'
    compile 'org.apache.httpcomponents:httpclient:4.5.6'

    // The SDK integrates with multiple JSON parsers. Here, we use Jackson.
    compile 'com.fasterxml.jackson.core:jackson-core:2.9.8'
    compile 'com.fasterxml.jackson.core:jackson-annotations:2.9.8'
    compile 'com.fasterxml.jackson.core:jackson-databind:2.9.8'

    compile 'org.slf4j:slf4j-api:1.7.16'
    compile 'ch.qos.logback:logback-classic:1.1.7'
}

The full source code is on GitHub.