# New intelliJPlatformResolver helper to control the IntelliJ Platform Gradle Plugin dependency extraction

**URL:** <https://platform.jetbrains.com/t/new-intellijplatformresolver-helper-to-control-the-intellij-platform-gradle-plugin-dependency-extraction/2024>\
**Category:** Gradle Build Scripts\
**Created:** [June 16, 2025, 7:56pm UTC](https://platform.jetbrains.com/t/new-intellijplatformresolver-helper-to-control-the-intellij-platform-gradle-plugin-dependency-extraction/2024 "2025-06-16T19:56:33Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![jakub.chrzanowski](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/jakub.chrzanowski/32/38_2.png) [@jakub.chrzanowski](https://platform.jetbrains.com/u/jakub.chrzanowski)\
**Post date:** [June 16, 2025, 7:56pm UTC](https://platform.jetbrains.com/t/new-intellijplatformresolver-helper-to-control-the-intellij-platform-gradle-plugin-dependency-extraction/2024/1 "2025-06-16T19:56:34Z")

</div>

In the latest IntelliJ Platform Gradle Plugin `2.6.1-SNAPSHOT`, I’ve introduced a new mechanism for resolving the IntelliJ Platform artifacts and extracting them into the custom location.  
This feature allows you to keep extracted IDEs in a specific place and not rely on the Gradle transformer. The transformer has a known issue of re-extracting the already-present archive if the Gradle build file’s classpath changes, resulting in multiple extracted IDE copies being present in the Gradle cache.

To utilize this incubating feature, replace the main IntelliJ Platform dependency definition (such as `create(type, version)`) with:

```kotlin
val intelliJPlatformResolver = project.intelliJPlatformResolver()

dependencies {
    intellijPlatform {
        local(
            intelliJPlatformResolver.resolve(
                type = providers.gradleProperty("platformType"),
                version = providers.gradleProperty("platformVersion"),
            )
        )
    }
}

```

By default, IDEs are extracted in the `PROJECT_DIR/.intellijPlatform/ides/` directory. Each IDE directory name is set to `$type-$version`. Both cache directory and name composition can be adjusted with i.e.:

```auto
val intelliJPlatformResolver = intelliJPlatformResolver {
    cacheDirectory = layout.dir(provider { File("/home/me/ides") })
    
    name = { it: RequestedIntelliJPlatform ->
        val today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))
        "${it.type}-${it.version}-$today"
    }
}

```

See also:

> <https://github.com/JetBrains/intellij-platform-gradle-plugin/blob/2336f3a5699f72ad13cfcce55e6ca0b8e76af941/src/main/kotlin/org/jetbrains/intellij/platform/gradle/utils/IntelliJPlatformResolver.kt#L226-L243>

> <https://github.com/JetBrains/intellij-platform-gradle-plugin/blob/2336f3a5699f72ad13cfcce55e6ca0b8e76af941/src/main/kotlin/org/jetbrains/intellij/platform/gradle/utils/IntelliJPlatformResolver.kt#L70-L84>

> <https://github.com/JetBrains/intellij-platform-gradle-plugin/blob/0366001374af908afddb8f763ab8549273eabd62/src/main/kotlin/org/jetbrains/intellij/platform/gradle/services/RequestedIntelliJPlatformsService.kt#L96-L117>

---

<div class="post-metadata">

**Author:** ![nicolas.quinquenel](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/nicolas.quinquenel/32/265_2.png) [@nicolas.quinquenel](https://platform.jetbrains.com/u/nicolas.quinquenel)\
**Post date:** [August 12, 2025, 8:11am UTC](https://platform.jetbrains.com/t/new-intellijplatformresolver-helper-to-control-the-intellij-platform-gradle-plugin-dependency-extraction/2024/2 "2025-08-12T08:11:19Z")

</div>

`intelliJPlatformResolver` is not longer accessible in version 2.7.0, any update on this? Thanks!

---

<div class="post-metadata">

**Author:** ![jakub.chrzanowski](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/jakub.chrzanowski/32/38_2.png) [@jakub.chrzanowski](https://platform.jetbrains.com/u/jakub.chrzanowski)\
**Post date:** [August 13, 2025, 1:06pm UTC](https://platform.jetbrains.com/t/new-intellijplatformresolver-helper-to-control-the-intellij-platform-gradle-plugin-dependency-extraction/2024/3 "2025-08-13T13:06:38Z")

</div>

This is now covered by the `useCustomCache` flag available when declaring a dependency on the IntelliJ Platform.  
See: [Dependencies Extension | IntelliJ Platform Plugin SDK](https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html#dependency-configuration-parameters)

---

<div class="post-metadata">

**Author:** ![chriscarini](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/chriscarini/32/695_2.png) [@chriscarini](https://platform.jetbrains.com/u/chriscarini)\
**Post date:** [August 23, 2025, 11:26am UTC](https://platform.jetbrains.com/t/new-intellijplatformresolver-helper-to-control-the-intellij-platform-gradle-plugin-dependency-extraction/2024/4 "2025-08-23T11:26:11Z")

</div>

I was just able to get this working; because it wasn’t as non-trivial to enable this flag + specify where the IDEs directory would land, below is my notes:

1. Change your build script `dependencies` section to look like below:

2. Add the below to your `gradle.properties` file

---

<div class="post-metadata">

**Author:** ![jakub.chrzanowski](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/jakub.chrzanowski/32/38_2.png) [@jakub.chrzanowski](https://platform.jetbrains.com/u/jakub.chrzanowski)\
**Post date:** [August 25, 2025, 1:06pm UTC](https://platform.jetbrains.com/t/new-intellijplatformresolver-helper-to-control-the-intellij-platform-gradle-plugin-dependency-extraction/2024/5 "2025-08-25T13:06:44Z")

</div>

Thanks @chriscarini, your PR is now merged and will be available with the upcoming release!

---

<div class="post-metadata">

**Author:** ![chriscarini](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/chriscarini/32/695_2.png) [@chriscarini](https://platform.jetbrains.com/u/chriscarini)\
**Post date:** [August 26, 2025, 3:48am UTC](https://platform.jetbrains.com/t/new-intellijplatformresolver-helper-to-control-the-intellij-platform-gradle-plugin-dependency-extraction/2024/6 "2025-08-26T03:48:39Z")

</div>

Awesome, thank you Jakub! 🙏

---

<div class="post-metadata">

**Author:** ![jonathanlermitage.1](https://avatars.discourse-cdn.com/v4/letter/j/e480ec/32.png) [@jonathanlermitage.1](https://platform.jetbrains.com/u/jonathanlermitage.1)\
**Post date:** [September 11, 2025, 3:17pm UTC](https://platform.jetbrains.com/t/new-intellijplatformresolver-helper-to-control-the-intellij-platform-gradle-plugin-dependency-extraction/2024/7 "2025-09-11T15:17:49Z")

</div>

Thanks a lot for this feature! This helps a lot.

---

<div class="post-metadata">

**Author:** ![jakub.chrzanowski](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/jakub.chrzanowski/32/38_2.png) [@jakub.chrzanowski](https://platform.jetbrains.com/u/jakub.chrzanowski)\
**Post date:** [September 11, 2025, 4:34pm UTC](https://platform.jetbrains.com/t/new-intellijplatformresolver-helper-to-control-the-intellij-platform-gradle-plugin-dependency-extraction/2024/8 "2025-09-11T16:34:20Z")

</div>

FTR, the `useCustomCache` property is now renamed to `customCache`.

---

<div class="post-metadata">

**Author:** ![chriscarini](https://sea1.discourse-cdn.com/flex001/user_avatar/platform.jetbrains.com/chriscarini/32/695_2.png) [@chriscarini](https://platform.jetbrains.com/u/chriscarini)\
**Post date:** [September 14, 2025, 3:53pm UTC](https://platform.jetbrains.com/t/new-intellijplatformresolver-helper-to-control-the-intellij-platform-gradle-plugin-dependency-extraction/2024/9 "2025-09-14T15:53:33Z")

</div>

> [@jakub.chrzanowski](#):
>
> customCache

Minor correction, it’s actually `useCache` (at least, in `2.9.0`) 😉
