Skip to content

Commit 25a9460

Browse files
henriquenfariavanniktech
authored andcommitted
Add support for Gradle 5 (#153)
* Add support for Gradle 5 * Correctly set file collections to avoid StackOverflowError * Remove unused imports
1 parent 78597ea commit 25a9460

File tree

6 files changed

+36
-35
lines changed

6 files changed

+36
-35
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ before_install:
66
# Download SDK
77
- yes | sdkmanager "tools" &>/dev/null
88
- yes | sdkmanager "platform-tools" &>/dev/null
9-
- yes | sdkmanager "build-tools;27.0.3" &>/dev/null
10-
- yes | sdkmanager "platforms;android-27" &>/dev/null
9+
- yes | sdkmanager "build-tools;28.0.3" &>/dev/null
10+
- yes | sdkmanager "platforms;android-28" &>/dev/null
1111
# Update remaining dependencies and accept licenses
1212
- yes | sdkmanager --update &>/dev/null
1313
- yes | sdkmanager --licenses &>/dev/null

build.gradle

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ dependencies {
4040
api gradleApi()
4141
api localGroovy()
4242

43-
compileOnly 'com.android.tools.build:gradle:3.1.2'
43+
compileOnly 'com.android.tools.build:gradle:3.4.0'
4444

45-
testCompile 'com.android.tools.build:gradle:3.1.2'
46-
testCompile 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.11'
45+
testCompile 'com.android.tools.build:gradle:3.4.0'
46+
testCompile 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.30'
4747
testCompile 'junit:junit:4.12'
4848
testCompile 'org.spockframework:spock-core:1.1-groovy-2.4', { exclude module: "groovy-all" } // Use localGroovy()
4949
}
@@ -63,7 +63,7 @@ pluginBundle {
6363
}
6464
}
6565

66-
task wrapper(type: Wrapper) {
67-
gradleVersion = '4.8'
66+
wrapper {
67+
gradleVersion = '5.1.1'
6868
distributionType = Wrapper.DistributionType.ALL
69-
}
69+
}
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.8-all.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists

src/main/groovy/com/vanniktech/android/junit/jacoco/GenerationPlugin.groovy

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ class GenerationPlugin implements Plugin<Project> {
8686
executionData = subProject.files("${subProject.buildDir}/jacoco/test.exec")
8787

8888
if (mergeTask != null) {
89-
mergeTask.executionData += executionData
89+
mergeTask.executionData.setFrom(executionData.files + mergeTask.executionData.files)
9090
}
9191
if (mergedReportTask != null) {
9292
mergedReportTask.classDirectories.setFrom(classDirectories.files + mergedReportTask.classDirectories.files)
@@ -159,7 +159,7 @@ class GenerationPlugin implements Plugin<Project> {
159159
JacocoMerge mergeTask, JacocoReport mergedReportTask, final String taskName,
160160
final String jvmTestTaskName, final String instrumentationTestTaskName, final String sourceName,
161161
final String sourcePath, final String productFlavorName, final String buildTypeName) {
162-
final def destinationDir
162+
def destinationDir
163163
if (combined) {
164164
destinationDir = "${subProject.buildDir}/reports/jacocoCombined"
165165
} else {
@@ -236,16 +236,17 @@ class GenerationPlugin implements Plugin<Project> {
236236

237237
if (combined) {
238238
// add instrumentation coverage execution data
239-
executionData += subProject.fileTree("${subProject.buildDir}/outputs/code_coverage").matching {
239+
def codeCoverageDirs = subProject.fileTree("${subProject.buildDir}/outputs/code_coverage").matching {
240240
include "**/*.ec"
241241
}
242+
executionData.setFrom(codeCoverageDirs.files + executionData.files)
242243
}
243244

244245
// add if true in extension or for the unit test Jacoco task
245246
def addToMergeTask = !combined || extension.includeInstrumentationCoverageInMergedReport
246247

247248
if (mergeTask != null && addToMergeTask) {
248-
mergeTask.executionData += executionData
249+
mergeTask.executionData.setFrom(executionData.files + mergeTask.executionData.files)
249250
}
250251
if (mergedReportTask != null && addToMergeTask) {
251252
mergedReportTask.classDirectories.setFrom(classDirectories.files + mergedReportTask.classDirectories.files)
@@ -277,7 +278,7 @@ class GenerationPlugin implements Plugin<Project> {
277278

278279
executionData.each {
279280
if (it.exists()) {
280-
realExecutionData += project.files(it)
281+
realExecutionData.setFrom(project.files(it) + realExecutionData.files)
281282
}
282283
}
283284

src/test/groovy/com/vanniktech/android/junit/jacoco/GenerationPluginSpec.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import spock.lang.Unroll
66

77
final class GenerationPluginSpec extends Specification {
88
final static ANDROID_PLUGINS = ["com.android.application", "com.android.library", "com.android.test", "com.android.feature"]
9-
final static COMPILE_SDK_VERSION = 27
10-
final static BUILD_TOOLS_VERSION = "27.0.1"
9+
final static COMPILE_SDK_VERSION = 28
10+
final static BUILD_TOOLS_VERSION = "28.0.3"
1111
final static APPLICATION_ID = "com.example"
1212

1313
def project

src/test/groovy/com/vanniktech/android/junit/jacoco/GenerationTest.groovy

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -277,14 +277,14 @@ class GenerationTest {
277277
assert reports.html.enabled
278278
assert reports.html.destination.toPath() == Paths.get(project.buildDir.absolutePath, "/reports/jacoco/${flavor}${buildType.capitalize()}")
279279

280-
assert classDirectories.dir == project.file("build/")
281-
assert contentEquals(classDirectories.includes, ["**/intermediates/classes/${flavor}/${buildType}/**".toString(), "**/intermediates/javac/${flavor}${buildType.capitalize()}/*/classes/**".toString()])
280+
assert classDirectories.getFrom().first().dir == project.file("build/")
281+
assert contentEquals(classDirectories.getFrom().first().includes, ["**/intermediates/classes/${flavor}/${buildType}/**".toString(), "**/intermediates/javac/${flavor}${buildType.capitalize()}/*/classes/**".toString()])
282282

283283
if (hasKotlin(project)) {
284-
assert contentEquals(classDirectories.includes, ["**/intermediates/classes/${flavor}/${buildType}/**".toString(), "**/intermediates/javac/${flavor}${buildType.capitalize()}/*/classes/**".toString(),
284+
assert contentEquals(classDirectories.getFrom().first().includes, ["**/intermediates/classes/${flavor}/${buildType}/**".toString(), "**/intermediates/javac/${flavor}${buildType.capitalize()}/*/classes/**".toString(),
285285
"**/tmp/kotlin-classes/${buildType}/**".toString(), "**/tmp/kotlin-classes/${flavor}${buildType.capitalize()}/**".toString()])
286286
} else {
287-
assert contentEquals(classDirectories.includes, ["**/intermediates/classes/${flavor}/${buildType}/**".toString(), "**/intermediates/javac/${flavor}${buildType.capitalize()}/*/classes/**".toString()])
287+
assert contentEquals(classDirectories.getFrom().first().includes, ["**/intermediates/classes/${flavor}/${buildType}/**".toString(), "**/intermediates/javac/${flavor}${buildType.capitalize()}/*/classes/**".toString()])
288288
}
289289

290290
assert taskDependsOn(task, "test${flavor.capitalize()}${buildType.capitalize()}UnitTest")
@@ -326,11 +326,11 @@ class GenerationTest {
326326
assert reports.html.enabled
327327
assert reports.html.destination.toPath() == Paths.get(project.buildDir.absolutePath, "/reports/jacoco/debug")
328328

329-
assert classDirectories.dir == project.file("build/")
329+
assert classDirectories.getFrom().first().dir == project.file("build/")
330330
if (hasKotlin(project)) {
331-
assert contentEquals(classDirectories.includes, ['**/intermediates/classes/debug/**', '**/intermediates/javac/debug/*/classes/**', '**/tmp/kotlin-classes/debug/**'])
331+
assert contentEquals(classDirectories.getFrom().first().includes, ['**/intermediates/classes/debug/**', '**/intermediates/javac/debug/*/classes/**', '**/tmp/kotlin-classes/debug/**'])
332332
} else {
333-
assert contentEquals(classDirectories.includes, ['**/intermediates/classes/debug/**', '**/intermediates/javac/debug/*/classes/**'])
333+
assert contentEquals(classDirectories.getFrom().first().includes, ['**/intermediates/classes/debug/**', '**/intermediates/javac/debug/*/classes/**'])
334334
}
335335

336336
assert taskDependsOn(debugTask, 'testDebugUnitTest')
@@ -366,11 +366,11 @@ class GenerationTest {
366366
assert reports.html.enabled
367367
assert reports.html.destination.toPath() == Paths.get(project.buildDir.absolutePath, '/reports/jacocoCombined/debug')
368368

369-
assert classDirectories.dir == project.file("build/")
369+
assert classDirectories.getFrom().first().dir == project.file("build/")
370370
if (hasKotlin(project)) {
371-
assert contentEquals(classDirectories.includes, ['**/intermediates/classes/debug/**', '**/intermediates/javac/debug/*/classes/**', '**/tmp/kotlin-classes/debug/**'])
371+
assert contentEquals(classDirectories.getFrom().first().includes, ['**/intermediates/classes/debug/**', '**/intermediates/javac/debug/*/classes/**', '**/tmp/kotlin-classes/debug/**'])
372372
} else {
373-
assert contentEquals(classDirectories.includes, ['**/intermediates/classes/debug/**', '**/intermediates/javac/debug/*/classes/**'])
373+
assert contentEquals(classDirectories.getFrom().first().includes, ['**/intermediates/classes/debug/**', '**/intermediates/javac/debug/*/classes/**'])
374374
}
375375

376376
assert taskDependsOn(debugTaskCombined, 'testDebugUnitTest')
@@ -410,11 +410,11 @@ class GenerationTest {
410410
assert reports.html.enabled
411411
assert reports.html.destination.toPath() == Paths.get(project.buildDir.absolutePath, '/reports/jacoco/release')
412412

413-
assert classDirectories.dir == project.file("build/")
413+
assert classDirectories.getFrom().first().dir == project.file("build/")
414414
if (hasKotlin(project)) {
415-
assert contentEquals(classDirectories.includes, ['**/intermediates/classes/release/**', '**/intermediates/javac/release/*/classes/**', '**/tmp/kotlin-classes/release/**'])
415+
assert contentEquals(classDirectories.getFrom().first().includes, ['**/intermediates/classes/release/**', '**/intermediates/javac/release/*/classes/**', '**/tmp/kotlin-classes/release/**'])
416416
} else {
417-
assert contentEquals(classDirectories.includes, ['**/intermediates/classes/release/**', '**/intermediates/javac/release/*/classes/**'])
417+
assert contentEquals(classDirectories.getFrom().first().includes, ['**/intermediates/classes/release/**', '**/intermediates/javac/release/*/classes/**'])
418418
}
419419

420420
assert taskDependsOn(releaseTask, 'testReleaseUnitTest')
@@ -451,14 +451,14 @@ class GenerationTest {
451451
assert reports.html.enabled
452452
assert reports.html.destination.toPath() == Paths.get(project.buildDir.absolutePath, '/reports/jacocoCombined/release')
453453

454-
assert classDirectories.dir == project.file("build/")
454+
assert classDirectories.getFrom().first().dir == project.file("build/")
455455
if (hasKotlin(project)) {
456-
assert contentEquals(classDirectories.includes, ['**/intermediates/classes/release/**', '**/intermediates/javac/release/*/classes/**', '**/tmp/kotlin-classes/release/**'])
456+
assert contentEquals(classDirectories.getFrom().first().includes, ['**/intermediates/classes/release/**', '**/intermediates/javac/release/*/classes/**', '**/tmp/kotlin-classes/release/**'])
457457
} else {
458-
assert contentEquals(classDirectories.includes, ['**/intermediates/classes/release/**', '**/intermediates/javac/release/*/classes/**'])
458+
assert contentEquals(classDirectories.getFrom().first().includes, ['**/intermediates/classes/release/**', '**/intermediates/javac/release/*/classes/**'])
459459
}
460460

461-
assert taskDependsOn(releaseTaskCombined, 'testReleaseUnitTest')
461+
assert taskDependsOn(releaseTaskCombined, 'testReleaseUnitTest')
462462
assert taskDependsOn(releaseTaskCombined, 'createReleaseCoverageReport')
463463
assert taskDependsOn(project.tasks.findByName('check'), 'combinedTestReportRelease')
464464
}
@@ -492,8 +492,8 @@ class GenerationTest {
492492
assert sourceDirectories.contains(project.file("src/main/$it"))
493493
}
494494

495-
assert classDirectories.dir == project.file('build/')
496-
assert contentEquals(classDirectories.includes, ['**/classes/**/main/**'])
495+
assert classDirectories.getFrom().first().dir == project.file("build/")
496+
assert contentEquals(classDirectories.getFrom().first().includes, ['**/classes/**/main/**'])
497497

498498
assert reports.xml.enabled
499499
assert reports.csv.enabled

0 commit comments

Comments
 (0)