---
title: Arciphant setup
description: Prerequisites, compatibility and how to include Arciphant in your Gradle build.
icon: monitor-cog
sidebar:
  label: Setup
---

## Include Arciphant in your build

Arciphant is published to
the <a href="https://plugins.gradle.org/plugin/ch.ergon.arciphant" target="_blank" rel="noreferrer">Gradle Plugin Portal</a>.
To integrate it, apply the plugin in your `settings.gradle.kts`:

```kotlin settings.gradle.kts {2}
plugins {
  id("ch.ergon.arciphant") version "0.2.0"
}

arciphant {
  // your arciphant config
}
```

The plugin portal page always shows the latest available version.

:::warning[Settings plugin]
Arciphant is a Gradle _settings_ plugin. Unlike regular plugins, a _settings_ plugin is applied in the
`settings.gradle.kts` file and _NOT_ in `build.gradle.kts`.
:::

## Prerequisites

### JVM plugin

To use Arciphant in your Gradle build, you have to apply either the _Kotlin JVM_ or the _Java Library_ (`java-library`)
plugin to all projects managed by Arciphant — the component and bundle projects in the project layout, the module and
bundle projects in the source set layout. This is necessary since Arciphant uses the JVM-specific configurations _api_
and _implementation_ registered by these plugins.

:::note[Plain `java` plugin]
The plain `java` plugin does not register the `api` configuration, which Arciphant needs in the project layout for
`apiDependencies` and library modules. It is sufficient only in the source set layout, where Arciphant creates the
`api` configurations of the component source sets itself.
:::

A simple way to do this is a `subprojects` block in the **root project's** `build.gradle.kts`:

```kotlin build.gradle.kts {2,6}
plugins {
  kotlin("jvm") version "2.2.0" apply false
}

subprojects {
  apply(plugin = "org.jetbrains.kotlin.jvm")
}
```

In larger builds, the JVM plugin is typically applied by convention plugins instead — see
[Using Plugins](/using-plugins).

## Compatibility

| Requirement                    | Supported                                          |
| ------------------------------ | -------------------------------------------------- |
| Gradle                         | 8.8 or newer (developed and tested against 8.12)   |
| Java                           | 17 or newer                                        |
| Gradle DSL                     | Kotlin DSL                                         |
| Configuration cache            | supported (both component layouts)                 |
| Isolated projects (incubating) | supported with the source set component layout     |

