Skip to content

Commit 540416d

Browse files
committed
Upgrade to Gradle 4.10
1 parent dafb5c9 commit 540416d

File tree

2 files changed

+33
-44
lines changed

2 files changed

+33
-44
lines changed

build.gradle.kts

Lines changed: 32 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import net.minecrell.gradle.licenser.header.HeaderStyle
1414
import org.gradle.internal.jvm.Jvm
1515
import org.jetbrains.intellij.tasks.PublishTask
1616
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
17+
import kotlin.reflect.KClass
1718

1819
buildscript {
1920
repositories {
@@ -41,19 +42,19 @@ val repoUsername: String by project
4142
val repoPassword: String by project
4243
val repoChannel: String by project
4344

44-
val compileKotlin by tasks
45-
val processResources: AbstractCopyTask by tasks
46-
val test: Test by tasks
47-
val runIde: JavaExec by tasks
48-
val publishPlugin: PublishTask by tasks
49-
val clean: Delete by tasks
45+
val compileKotlin by tasks.existing
46+
val processResources by tasks.existing<AbstractCopyTask>()
47+
val test by tasks.existing<Test>()
48+
val runIde by tasks.existing<JavaExec>()
49+
val publishPlugin by tasks.existing<PublishTask>()
50+
val clean by tasks.existing<Delete>()
5051

5152
configurations {
52-
"gradle-tooling-extension" { extendsFrom("idea"()) }
53-
"jflex"()
54-
"jflex-skeleton"()
55-
"grammar-kit"()
56-
"testLibs" { isTransitive = false }
53+
register("gradle-tooling-extension") { extendsFrom(configurations["idea"]) }
54+
register("jflex")
55+
register("jflex-skeleton")
56+
register("grammar-kit")
57+
register("testLibs") { isTransitive = false }
5758
}
5859

5960
repositories {
@@ -66,16 +67,14 @@ repositories {
6667
java {
6768
sourceCompatibility = JavaVersion.VERSION_1_8
6869
targetCompatibility = JavaVersion.VERSION_1_8
70+
}
6971

70-
sourceSets {
71-
"gradle-tooling-extension" {
72-
configurations[compileOnlyConfigurationName].extendsFrom(configurations["gradle-tooling-extension"])
73-
}
72+
val gradleToolingExtension = sourceSets.create("gradle-tooling-extension") {
73+
configurations.named<Configuration>(compileOnlyConfigurationName) {
74+
extendsFrom(configurations["gradle-tooling-extension"])
7475
}
7576
}
76-
77-
val gradleToolingExtension = java.sourceSets["gradle-tooling-extension"]!!
78-
val gradleToolingExtensionJar = task<Jar>(gradleToolingExtension.jarTaskName) {
77+
val gradleToolingExtensionJar = tasks.register<Jar>(gradleToolingExtension.jarTaskName) {
7978
from(gradleToolingExtension.output)
8079
classifier = "gradle-tooling-extension"
8180
}
@@ -97,19 +96,9 @@ dependencies {
9796
"testLibs"("org.jetbrains.idea:mockJDK:1.7-4d76c50")
9897
"testLibs"("org.spongepowered:mixin:0.7-SNAPSHOT:thin")
9998

100-
// This needs to happen after build number is resolved
101-
// intellij.ideaDependency.buildNumber == intellij.type-<buildnumber>
102-
// gradle-tooling-extension isn't released with major intellij versions like intellij is
103-
// intellij.type is typically IC
104-
// build number is IC-number, so + 1 is needed to remove the -
105-
afterEvaluate {
106-
val gradleVersion = if (!ideaVersion.endsWith("SNAPSHOT")) {
107-
intellij.ideaDependency.buildNumber.substring(intellij.type.length + 1)
108-
} else {
109-
ideaVersion
110-
}
111-
"gradle-tooling-extension"("com.jetbrains.intellij.gradle:gradle-tooling-extension:$gradleVersion")
112-
}
99+
// For non-SNAPSHOT versions (unless Jetbrains fixes this...) find the version with:
100+
// intellij.ideaDependency.buildNumber.substring(intellij.type.length + 1)
101+
"gradle-tooling-extension"("com.jetbrains.intellij.gradle:gradle-tooling-extension:182.3684.90")
113102
}
114103

115104
intellij {
@@ -138,16 +127,16 @@ publishPlugin {
138127
}
139128
}
140129

141-
tasks.withType<JavaCompile> {
130+
tasks.withType<JavaCompile>().configureEach {
142131
options.encoding = "UTF-8"
143132
options.compilerArgs = listOf("-proc:none")
144133
}
145134

146-
tasks.withType<KotlinCompile> {
135+
tasks.withType<KotlinCompile>().configureEach {
147136
kotlinOptions.jvmTarget = JavaVersion.VERSION_1_8.toString()
148137
}
149138

150-
tasks.withType<GroovyCompile> {
139+
tasks.withType<GroovyCompile>().configureEach {
151140
options.compilerArgs = listOf("-proc:none")
152141
}
153142

@@ -175,7 +164,6 @@ idea {
175164
}
176165
}
177166

178-
// License header formatting
179167
license {
180168
header = file("copyright.txt")
181169
style["flex"] = HeaderStyle.BLOCK_COMMENT.format
@@ -200,18 +188,18 @@ license {
200188
)
201189

202190
tasks {
203-
"gradle" {
191+
register("gradle") {
204192
files = project.files("build.gradle.kts", "settings.gradle.kts", "gradle.properties")
205193
}
206-
"grammars" {
194+
register("grammars") {
207195
files = project.fileTree("src/main/grammars")
208196
}
209197
}
210198
}
211199

212200
// Credit for this intellij-rust
213201
// https://github.com/intellij-rust/intellij-rust/blob/d6b82e6aa2f64b877a95afdd86ec7b84394678c3/build.gradle#L131-L181
214-
fun generateLexer(name: String, flex: String, pack: String) = task<JavaExec>(name) {
202+
fun generateLexer(name: String, flex: String, pack: String) = tasks.register<JavaExec>(name) {
215203
val src = "src/main/grammars/$flex.flex"
216204
val dst = "gen/com/demonwav/mcdev/$pack"
217205
val output = "$dst/$flex.java"
@@ -234,7 +222,7 @@ fun generateLexer(name: String, flex: String, pack: String) = task<JavaExec>(nam
234222
outputs.file(output)
235223
}
236224

237-
fun generatePsiAndParser(name: String, bnf: String, pack: String) = task<JavaExec>(name) {
225+
fun generatePsiAndParser(name: String, bnf: String, pack: String) = tasks.register<JavaExec>(name) {
238226
val src = "src/main/grammars/$bnf.bnf".replace('/', File.separatorChar)
239227
val dstRoot = "gen"
240228
val dst = "$dstRoot/com/demonwav/mcdev/$pack".replace('/', File.separatorChar)
@@ -268,7 +256,7 @@ val generateI18nPsiAndParser = generatePsiAndParser("generateI18nPsiAndParser",
268256

269257
val generateI18nTemplateLexer = generateLexer("generateI18nTemplateLexer", "I18nTemplateLexer", "i18n/lang/gen/")
270258

271-
val generate = task("generate") {
259+
val generate = tasks.register("generate") {
272260
group = "minecraft"
273261
description = "Generates sources needed to compile the plugin."
274262
dependsOn(
@@ -283,10 +271,10 @@ val generate = task("generate") {
283271
outputs.dir("gen")
284272
}
285273

286-
java.sourceSets[SourceSet.MAIN_SOURCE_SET_NAME].java.srcDir(generate)
274+
sourceSets.named<SourceSet>("main") { java.srcDir(generate) }
287275

288276
// Remove gen directory on clean
289-
clean.delete(generate)
277+
clean { delete(generate) }
290278

291279
runIde {
292280
maxHeapSize = "2G"
@@ -297,4 +285,5 @@ runIde {
297285
}
298286
}
299287

300-
inline operator fun <T : Task> T.invoke(a: T.() -> Unit): T = apply(a)
288+
inline fun <reified T : Task> TaskContainer.existing() = existing(T::class)
289+
inline fun <reified T : Task> TaskContainer.register(name: String, configuration: Action<in T>) = register(name, T::class, configuration)
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)