Skip to content

Commit e5a9883

Browse files
authored
Merge pull request #121 from runningcode/no/task-config-avoidance
Avoid configuring JavaCompile tasks eagerly.
2 parents 633c071 + 80e343e commit e5a9883

File tree

2 files changed

+36
-1
lines changed

2 files changed

+36
-1
lines changed

src/main/groovy/org/gradle/android/workarounds/CompilerArgsProcessor.groovy

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class CompilerArgsProcessor {
4040
}
4141
applied = true
4242

43-
project.tasks.withType(JavaCompile) { JavaCompile task ->
43+
project.tasks.withType(JavaCompile).configureEach { JavaCompile task ->
4444
project.gradle.taskGraph.beforeTask {
4545
if (task == it) {
4646
def processedArgs = processArgs(task.options.compilerArgs, task)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package org.gradle.android
2+
3+
import spock.lang.Unroll
4+
5+
class TaskAvoidanceTest extends AbstractTest {
6+
@Unroll
7+
def "Source Tasks are avoided with #gradleVersion and Android plugin #androidVersion"() {
8+
given:
9+
SimpleAndroidApp.builder(temporaryFolder.root, cacheDir)
10+
.withAndroidVersion(androidVersion)
11+
.withKotlinDisabled()
12+
.build()
13+
.writeProject()
14+
15+
file('build.gradle') << """
16+
allprojects {
17+
tasks.withType(SourceTask).configureEach {
18+
println "configuring \$it"
19+
}
20+
}
21+
"""
22+
23+
when:
24+
def result = withGradleVersion(gradleVersion.version)
25+
.withProjectDir(temporaryFolder.root)
26+
.withArguments('help')
27+
.build()
28+
29+
then:
30+
!result.output.contains("configuring")
31+
32+
where:
33+
[androidVersion, gradleVersion] << Versions.SUPPORTED_VERSIONS_MATRIX.entries().collect { [it.key, it.value] }
34+
}
35+
}

0 commit comments

Comments
 (0)