> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/gridgain/gridgain-9/gridgain9-development/project-setup.md).

# Project Setup

Set up a Java project for GridGain 9 — add the GridGain repository and the client dependency, and learn which GridGain modules to add for each feature.

This page describes how to set up a Java project for GridGain 9, and which GridGain modules you should add as dependencies.

## Prerequisites

GridGain is tested on Oracle JDK 11, 17, 21, and 25 (LTS), as well as JDK 26 (STS). Other Java vendors are supported, but may have minor discrepancies in performance or stability.

Short-term support (STS) Java versions are supported only until the next STS release, Long-term support (LTS) versions are not affected by this policy.

## Adding the GridGain Repository

GridGain modules are published to the GridGain repository, not to Maven Central. Add the repository to your build before declaring any GridGain dependency.

{% tabs %}
{% tab title="Maven" %}

```xml
<repositories>
    <repository>
        <id>GridGain External Repository</id>
        <url>https://www.gridgainsystems.com/nexus/content/repositories/external</url>
    </repository>
</repositories>
```

{% endtab %}

{% tab title="Gradle" %}

```groovy
repositories {
    maven {
        url = "https://www.gridgainsystems.com/nexus/content/repositories/external"
    }
}
```

{% endtab %}
{% endtabs %}

## Adding the Client Dependency

The thin client provides the Table, Key-Value, SQL, Compute, Transactions, Catalog, and Data Streamer APIs used throughout the examples — the `org.apache.ignite.*` packages you see in the code samples. Add it as the single dependency for client applications:

{% tabs %}
{% tab title="Maven" %}

```xml
<dependency>
    <groupId>org.gridgain</groupId>
    <artifactId>ignite-client</artifactId>
    <version>9.1.28</version>
</dependency>
```

{% endtab %}

{% tab title="Gradle" %}

```groovy
implementation 'org.gridgain:ignite-client:9.1'
```

{% endtab %}
{% endtabs %}

All GridGain modules share the `org.gridgain` group ID and the `9.1` version. Always declare the version that matches your cluster.

## Required Modules

The following table lists the GridGain modules an application developer adds as dependencies. Add `ignite-client` for any thin-client application; add the other modules only when you use the corresponding feature or integration.

| Artifact ID                         | Add it when you use                                                                                                                 | Reference                                                                                              |
| ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| `ignite-client`                     | Table API, Key-Value API, SQL API, Compute, Transactions, Catalog, Data Streamer, Continuous Queries — any thin-client application. | [Java Client](/docs/connectors/clients/java.md)                                                        |
| `ignite-jdbc`                       | The JDBC driver to connect over SQL.                                                                                                | [JDBC Driver](/docs/connectors/clients/jdbc-driver.md)                                                 |
| `gridgain-jdbc-cache-store`         | An external JDBC cache store.                                                                                                       | [Cache](/docs/gridgain/gridgain-9/gridgain9-development/caches-and-memory/caches.md)                   |
| `gridgain-map-structure`            | Distributed map data structures (the `org.gridgain.structure` API), in addition to `ignite-client`.                                 | [Distributed Map](/docs/gridgain/gridgain-9/gridgain9-development/data-structures/distributed-maps.md) |
| `gridgain-hibernate`                | Hibernate ORM integration.                                                                                                          | [Hibernate](/docs/gridgain/gridgain-9/integrations/hibernate.md)                                       |
| `spring-data-ignite`                | Spring Data integration.                                                                                                            | [Spring Data](/docs/gridgain/gridgain-9/integrations/spring-data.md)                                   |
| `spring-boot-starter-ignite-client` | Spring Boot autoconfiguration for the client.                                                                                       | [Spring Boot](/docs/gridgain/gridgain-9/integrations/spring-boot.md)                                   |

{% hint style="info" %}
The `gridgain-hibernate`, `spring-data-ignite`, and `spring-boot-starter-ignite-client` modules require JDK 17 or later.
{% endhint %}

## Next Steps

* [Use Java API](/docs/gridgain/gridgain-9/gridgain9-get-started/java-api.md) — an end-to-end example using the modules above.
* [Java Client](/docs/connectors/clients/java.md) — full client configuration reference.
* [Table API](/docs/gridgain/gridgain-9/gridgain9-development/accessing-data/table-api.md) — work with data once the client is connected.

## See Also

* [How to Configure Logging for the Java Thin Client](/docs/gridgain/gridgain-9/gridgain9-get-started/how-to-guides/configuring-java-client-logging.md)
* [Connect With the Java Thin Client](/docs/gridgain/gridgain-9/gridgain9-get-started/learning-paths/distributed-sql-foundations/connect-java-thin-client.md)
