net.twisterrob.gradle
net.twisterrob.gradle copied to clipboard
Configuration resolution tests?
trafficstars
https://youtrack.jetbrains.com/issue/KT-25749
Tried, but this only works once Kotlin 1.6.0+ is used in all tests; or if conditionally applied.
Index: test/src/main/resources/net/twisterrob/gradle/test/init.gradle.kts
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/test/src/main/resources/net/twisterrob/gradle/test/init.gradle.kts b/test/src/main/resources/net/twisterrob/gradle/test/init.gradle.kts
--- a/test/src/main/resources/net/twisterrob/gradle/test/init.gradle.kts (revision 5986638441cb200f618e93009eedf043d7a935e9)
+++ b/test/src/main/resources/net/twisterrob/gradle/test/init.gradle.kts (revision 4ebe2561f64f0b3f23e434a6c7a4264ce41a8835)
@@ -47,6 +47,25 @@
extensions.extraProperties.set("doNotNagAboutPattern", ::doNotNagAboutPattern)
}
+//region: Prevent resolving configurations during CONFIGURATION phase
+// Based on https://youtrack.jetbrains.com/issue/KT-25749.
+var configured = false
+gradle.taskGraph.whenReady {
+ configured = true
+}
+gradle.beforeProject {
+ val project = this
+ project.configurations.configureEach {
+ val configuration = this
+ configuration.incoming.beforeResolve {
+ if (!configured) {
+ error("Configuration $configuration in $project is being resolved at configuration time.")
+ }
+ }
+ }
+}
+//endregion
+
/**
* Surgically ignoring messages like this will prevent actual executions from triggering
* stack traces and warnings, which means that even with some warnings,