Skip to content

Commit 1beaba3

Browse files
authored
Add IntelliJ Platform 2025.3 build (#250)
In 2025.3 IntelliJ IDEA Community and Ultimate are combined into one product. See https://blog.jetbrains.com/platform/2025/11/intellij-platform-2025-3-what-plugin-developers-should-know/ Along with this change the build system was updated. See https://blog.jetbrains.com/platform/2025/11/intellij-platform-2025-3-what-plugin-developers-should-know/#requirements Upgrade `org.jetbrains.intellij.platform ` plugin to 2.10.5. This leads to need more ram on GitHub Actions, so it has been increased to 1024 MB Upgrade Gradle to 8.14.3: - The space assignment syntax is now deprecated - The JVM is now configured different - Calling `Task.getProject()` is now deprecated - `task` should be replaced with `tasks.register` Update minimal supported version to 2024.2 (224) and increased the JVM Version to 21.
1 parent b078ff2 commit 1beaba3

File tree

8 files changed

+80
-55
lines changed

8 files changed

+80
-55
lines changed

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ jobs:
88
fail-fast: false
99
matrix:
1010
version:
11-
- { jdk: 17, idea: 2024.1 }
1211
- { jdk: 21, idea: 2024.2 }
1312
- { jdk: 21, idea: 2024.3 }
1413
- { jdk: 21, idea: 2025.1 }
1514
- { jdk: 21, idea: 2025.2 }
15+
- { jdk: 21, idea: 2025.3 }
1616
- { jdk: 21, idea: LATEST-EAP-SNAPSHOT }
1717
name: 'IDEA ${{ matrix.version.idea }}'
1818
env:

build.gradle

Lines changed: 35 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import com.hierynomus.gradle.license.tasks.LicenseFormat
33
import org.jetbrains.intellij.platform.gradle.TestFrameworkType
44

55
plugins {
6-
id "org.jetbrains.intellij.platform" version "2.6.0"
7-
id "com.github.hierynomus.license" version "0.16.1"
6+
id("org.jetbrains.intellij.platform") version "2.10.5"
7+
id("com.github.hierynomus.license") version "0.16.1"
88
}
99

1010

11-
group pluginGroup
12-
version pluginVersion
11+
group = pluginGroup
12+
version = pluginVersion
1313

1414
apply plugin: 'idea'
1515
apply plugin: 'java'
@@ -19,8 +19,8 @@ apply plugin: 'checkstyle'
1919
apply plugin: 'jacoco'
2020

2121
java {
22-
sourceCompatibility = JavaVersion.VERSION_17
23-
targetCompatibility = JavaVersion.VERSION_17
22+
sourceCompatibility = JavaLanguageVersion.of(21)
23+
targetCompatibility = JavaLanguageVersion.of(21)
2424
}
2525

2626
repositories {
@@ -36,7 +36,7 @@ intellijPlatform {
3636
projectName = 'MapStruct-Intellij-Plugin'
3737
pluginConfiguration {
3838
ideaVersion {
39-
sinceBuild = "241"
39+
sinceBuild = "242"
4040
untilBuild = provider { null } as Provider<? extends String>
4141
}
4242
}
@@ -50,17 +50,17 @@ patchPluginXml {
5050
pluginDescription = htmlFixer('description.html')
5151
}
5252

53-
task licenseTestData(type: LicenseCheck) {
53+
tasks.register('licenseTestData', LicenseCheck) {
5454
source = fileTree(dir: "testData").include("**/*")
5555
}
5656

57-
task licenseFormatForKotlin(type: LicenseFormat) {
57+
tasks.register('licenseFormatForKotlin', LicenseFormat) {
5858
source = fileTree(dir: "src/main").include("**/*.kt").include("**/*.xml")
5959
}
6060

6161
license {
62-
header rootProject.file('etc/license.txt')
63-
strictCheck true
62+
header = file('etc/license.txt')
63+
strictCheck = true
6464
mapping {
6565
java = 'SLASHSTAR_STYLE' // IntelliJ reports the JAVADOC_STYLE as a dangling comment
6666
}
@@ -75,28 +75,35 @@ licenseFormat.dependsOn licenseFormatForKotlin
7575
licenseTest.dependsOn licenseTestData
7676

7777
checkstyle {
78-
toolVersion '8.36.1'
79-
config resources.text.fromUri("https://raw.githubusercontent.com/mapstruct/mapstruct/master/build-config/src/main/resources/build-config/checkstyle.xml")
78+
toolVersion = '8.36.1'
79+
config = resources.text.fromUri("https://raw.githubusercontent.com/mapstruct/mapstruct/master/build-config/src/main/resources/build-config/checkstyle.xml")
8080
configProperties = [
81-
'checkstyle.cache.file': rootProject.layout.buildDirectory.get().asFile.toPath( ).resolve( 'checkstyle-cachefile').toString(),
81+
'checkstyle.cache.file': layout.buildDirectory.get().asFile.toPath( ).resolve( 'checkstyle-cachefile').toString(),
8282
'basedir': 'https://raw.githubusercontent.com/mapstruct/mapstruct/master/build-config',
8383
]
8484
}
8585

8686
jacocoTestReport {
87+
classDirectories.setFrom(instrumentCode)
8788
reports {
8889
xml.required = true
8990
html.required = true
9091
}
9192
}
9293

9394
def versionToUse = System.getenv().getOrDefault( 'IDEA_VERSION', ideaVersion )
94-
def useInstaller = !versionToUse.containsIgnoreCase( "EAP" )
95+
def useIdeaInstaller = !versionToUse.containsIgnoreCase( "EAP" )
9596
dependencies {
9697
intellijPlatform {
97-
ideaType == 'IC' ? intellijIdeaCommunity(versionToUse, useInstaller) : intellijIdeaUltimate(versionToUse, useInstaller)
98-
99-
jetbrainsRuntime()
98+
// When versionToUse is 2025.3 or later then there is only a single distribution of IntelliJ
99+
// This comparison can be removed if the oldest supported version of idea is 2025.3 (253) or later
100+
if (('2025.3' <=> versionToUse) <= 0 ){
101+
intellijIdea(versionToUse) {
102+
useInstaller = useIdeaInstaller
103+
}
104+
} else {
105+
ideaType == 'IC' ? intellijIdeaCommunity(versionToUse, useIdeaInstaller) : intellijIdeaUltimate(versionToUse, useIdeaInstaller)
106+
}
100107

101108
bundledPlugin( 'com.intellij.java' )
102109
bundledPlugin( 'org.jetbrains.kotlin' )
@@ -116,20 +123,20 @@ dependencies {
116123
testRuntimeOnly('org.immutables:value:2.10.1')
117124
}
118125

119-
task libs(type: Sync) {
120-
from configurations.runtimeClasspath
121-
into layout.buildDirectory.dir("libs")
126+
tasks.register('libs', Sync) {
127+
from(configurations.runtimeClasspath)
128+
into(layout.buildDirectory.dir("libs"))
122129
preserve {
123-
include 'mapstruct-intellij-*.jar'
124-
include 'MapStruct-Intellij-*.jar'
130+
include('mapstruct-intellij-*.jar')
131+
include('MapStruct-Intellij-*.jar')
125132
}
126-
rename 'mapstruct-1.5.3.Final.jar', 'mapstruct.jar'
133+
rename('mapstruct-1.5.3.Final.jar', 'mapstruct.jar')
127134
}
128135

129-
task testLibs(type: Sync) {
130-
from configurations.testRuntimeClasspath
131-
into "$buildDir/test-libs"
132-
rename 'value-2.10.1.jar', 'immutables.jar'
136+
tasks.register('testLibs', Sync) {
137+
from(configurations.testRuntimeClasspath)
138+
into(layout.buildDirectory.dir("test-libs"))
139+
rename('value-2.10.1.jar', 'immutables.jar')
133140
}
134141

135142
test.dependsOn( libs, testLibs )

gradle.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
# https://www.jetbrains.com/intellij-repository/releases
33
# https://www.jetbrains.com/intellij-repository/snapshots
44

5-
ideaVersion = 2024.1
5+
ideaVersion = 2024.2
66
ideaType = IC
77
sources = true
88
runGenerators = true
9+
org.gradle.jvmargs=-Xmx1024m
910

1011
pluginGroup = org.mapstruct
1112
pluginName = mapstruct-intellij

gradle/wrapper/gradle-wrapper.jar

-16.8 KB
Binary file not shown.
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
4+
networkTimeout=10000
5+
validateDistributionUrl=true
46
zipStoreBase=GRADLE_USER_HOME
57
zipStorePath=wrapper/dists

gradlew

Lines changed: 25 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gradlew.bat

Lines changed: 13 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/resources/META-INF/plugin.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
<vendor url="https://www.mapstruct.org">MapStruct</vendor>
2525

2626
<!-- please see https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
27-
<idea-version since-build="241"/>
27+
<idea-version since-build="242"/>
2828

2929
<!-- please see https://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
3030
on how to target different products -->

0 commit comments

Comments
 (0)