From f7952a9db408521d90c58ebd92cd93a96cd154b3 Mon Sep 17 00:00:00 2001 From: Kenny Root Date: Thu, 23 Jul 2015 23:07:58 -0700 Subject: Re-organize gradle files to make them more readable --- app/build.gradle | 77 +++++++++++++--------------------------------------- build.gradle | 13 --------- config/jacoco.gradle | 41 ++++++++++++++++++++++++++++ 3 files changed, 60 insertions(+), 71 deletions(-) create mode 100644 config/jacoco.gradle diff --git a/app/build.gradle b/app/build.gradle index 1a643e6..17bce83 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -3,6 +3,7 @@ apply plugin: 'com.android.application' apply plugin: 'com.github.kt3k.coveralls' apply from: '../config/quality.gradle' apply from: '../config/translations.gradle' +apply from: '../config/jacoco.gradle' buildscript { repositories { @@ -11,6 +12,24 @@ buildscript { dependencies { classpath 'org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.0.1x' + classpath 'com.android.tools.build:gradle:1.2.3' + classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.0' + } +} + +repositories { + maven { + url 'https://dl.bintray.com/connectbot/maven' + } +} + +dependencies { + compile 'org.connectbot:sshlib:2.2.0' + + testCompile 'junit:junit:4.12' + testCompile('org.robolectric:robolectric:3.0') { + exclude group: 'commons-logging', module: 'commons-logging' + exclude group: 'org.apache.httpcomponents', module: 'httpclient' } } @@ -66,64 +85,6 @@ android { } } -apply plugin: 'jacoco' - -// By default, Android Gradle plugin uses JaCoCo version 0.7.1, which works great in JUnit on the JVM. -// But that will fail on Android Lollipop/ART runtime, which requires 0.7.3 or higher. -if (rootProject.hasProperty('jacocoVersion')) { - android.jacoco.version = rootProject.property('jacocoVersion') - jacoco.toolVersion = rootProject.property('jacocoVersion') -} else { - println "Using the default JaCoCo version of: ${jacoco.toolVersion}" -} - -// The built-in jacoco plugin automatically applies itself to all Test tasks -tasks.withType(Test).whenTaskAdded { - it.jacoco.append = false - it.jacoco.classDumpFile = file("${project.buildDir}/jacoco/dump") -} - -// These tasks are for generating the coverage report after JUnit+robolectric tests have executed -tasks.create(name: "jacocoTestDebugReport", type: JacocoReport, dependsOn: "testDebug") { - group = "Reporting" - description = "Generate Jacoco coverage reports" - - classDirectories = fileTree( - dir: "${project.buildDir}/intermediates/classes/debug/", - excludes: ['**/R.class', - '**/R$*.class', - '**/*$ViewInjector*.*', - '**/BuildConfig.*', - '**/Manifest*.*'] - ) - - sourceDirectories = files("src/main/java", "src/debug/java") - executionData = files("${project.buildDir}/jacoco/testDebug.exec") - - reports { - xml.enabled = true - html.enabled = true - } -} - -coveralls.jacocoReportPath = "${project.buildDir}/reports/jacoco/jacocoTestDebugReport/jacocoTestDebugReport.xml" - -repositories { - maven { - url 'https://dl.bintray.com/connectbot/maven' - } -} - -dependencies { - compile 'org.connectbot:sshlib:2.2.0' - - testCompile 'junit:junit:4.12' - testCompile('org.robolectric:robolectric:3.0') { - exclude group: 'commons-logging', module: 'commons-logging' - exclude group: 'org.apache.httpcomponents', module: 'httpclient' - } -} - if (project.hasProperty('keystorePassword')) { android.signingConfigs.release.storeFile file(keystoreFile) android.signingConfigs.release.storePassword keystorePassword diff --git a/build.gradle b/build.gradle index 0bc5afe..8f7ef85 100644 --- a/build.gradle +++ b/build.gradle @@ -1,18 +1,5 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. -buildscript { - repositories { - jcenter() - maven { - url 'https://dl.bintray.com/phildopus/maven' - } - } - dependencies { - classpath 'com.android.tools.build:gradle:1.2.3' - classpath 'com.jakewharton.sdkmanager:gradle-plugin:0.12.+' - } -} - allprojects { repositories { jcenter() diff --git a/config/jacoco.gradle b/config/jacoco.gradle new file mode 100644 index 0000000..c603349 --- /dev/null +++ b/config/jacoco.gradle @@ -0,0 +1,41 @@ +apply plugin: 'jacoco' + +// By default, Android Gradle plugin uses JaCoCo version 0.7.1, which works great in JUnit on the JVM. +// But that will fail on Android Lollipop/ART runtime, which requires 0.7.3 or higher. +if (rootProject.hasProperty('jacocoVersion')) { + android.jacoco.version = rootProject.property('jacocoVersion') + jacoco.toolVersion = rootProject.property('jacocoVersion') +} else { + println "Using the default JaCoCo version of: ${jacoco.toolVersion}" +} + +// The built-in jacoco plugin automatically applies itself to all Test tasks +tasks.withType(Test).whenTaskAdded { + it.jacoco.append = false + it.jacoco.classDumpFile = file("${project.buildDir}/jacoco/dump") +} + +// These tasks are for generating the coverage report after JUnit+robolectric tests have executed +tasks.create(name: "jacocoTestDebugReport", type: JacocoReport, dependsOn: "testDebug") { + group = "Reporting" + description = "Generate Jacoco coverage reports" + + classDirectories = fileTree( + dir: "${project.buildDir}/intermediates/classes/debug/", + excludes: ['**/R.class', + '**/R$*.class', + '**/*$ViewInjector*.*', + '**/BuildConfig.*', + '**/Manifest*.*'] + ) + + sourceDirectories = files("src/main/java", "src/debug/java") + executionData = files("${project.buildDir}/jacoco/testDebug.exec") + + reports { + xml.enabled = true + html.enabled = true + } +} + +coveralls.jacocoReportPath = "${project.buildDir}/reports/jacoco/jacocoTestDebugReport/jacocoTestDebugReport.xml" \ No newline at end of file -- cgit v1.2.3