Skip to content
This repository was archived by the owner on Aug 19, 2020. It is now read-only.

Commit 4a1fe02

Browse files
authored
Merge pull request #1316 from gradle/eskatos/precompiled/clean-stale-output
Let GenerateScriptPluginAdapters task clean stale outputs
2 parents 068cbe0 + 56fb465 commit 4a1fe02

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

subprojects/integ-tests/src/test/kotlin/org/gradle/kotlin/dsl/integration/PrecompiledScriptPluginIntegrationTest.kt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ import org.gradle.kotlin.dsl.fixtures.gradleRunnerFor
88
import org.gradle.kotlin.dsl.fixtures.normalisedPath
99

1010
import org.hamcrest.CoreMatchers.equalTo
11+
import org.junit.Assert.assertFalse
1112
import org.junit.Assert.assertThat
13+
import org.junit.Assert.assertTrue
1214
import org.junit.Test
1315

1416

@@ -78,4 +80,25 @@ class PrecompiledScriptPluginIntegrationTest : AbstractPluginIntegrationTest() {
7880
assertThat(outcomeOf(generationTask), equalTo(FROM_CACHE))
7981
}
8082
}
83+
84+
@Test
85+
fun `precompiled script plugins adapters generation clean stale outputs`() {
86+
87+
withDefaultSettings()
88+
withBuildScript("""
89+
plugins { `kotlin-dsl` }
90+
repositories { jcenter() }
91+
""")
92+
93+
val fooScript = withFile("src/main/kotlin/foo.gradle.kts", "")
94+
95+
build("generateScriptPluginAdapters")
96+
assertTrue(existing("build/generated-sources/kotlin-dsl-plugins/kotlin/FooPlugin.kt").isFile)
97+
98+
fooScript.renameTo(fooScript.parentFile.resolve("bar.gradle.kts"))
99+
100+
build("generateScriptPluginAdapters")
101+
assertFalse(existing("build/generated-sources/kotlin-dsl-plugins/kotlin/FooPlugin.kt").exists())
102+
assertTrue(existing("build/generated-sources/kotlin-dsl-plugins/kotlin/BarPlugin.kt").isFile)
103+
}
81104
}

subprojects/plugins/src/main/kotlin/org/gradle/kotlin/dsl/plugins/precompiled/GenerateScriptPluginAdapters.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ open class GenerateScriptPluginAdapters : DefaultTask() {
5252
internal
5353
fun generate() =
5454
outputDirectory.asFile.get().let { outputDir ->
55+
outputDir.deleteRecursively()
5556
outputDir.mkdirs()
5657
for (scriptPlugin in plugins) {
5758
scriptPlugin.writeScriptPluginAdapterTo(outputDir)

0 commit comments

Comments
 (0)