diff --git a/build.gradle b/build.gradle index 22575c1..427cc61 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,21 @@ -buildscript { - repositories { - mavenCentral() +def isDirty = { -> + def stdout = new ByteArrayOutputStream() + exec { + commandLine 'git', 'status', '--porcelain' + standardOutput = stdout } - dependencies { - classpath 'com.github.townsfolk:gradle-release:1.2' + return stdout.toString().trim() +} +def getVersionName = { -> + def stdout = new ByteArrayOutputStream() + exec { + commandLine 'git', 'describe', '--tags' + standardOutput = stdout } + def gitVersionName = stdout.toString().trim() + return isDirty() ? gitVersionName + '-SNAPSHOT' : gitVersionName } +version = getVersionName() repositories { mavenCentral() @@ -19,7 +29,6 @@ ext { apply plugin: 'idea' apply plugin: 'maven' apply plugin: 'groovy' -apply plugin: 'release' group 'org.scoverage' @@ -31,7 +40,7 @@ configurations { dependencies { compile gradleApi() compile localGroovy() - scoverage 'org.scoverage:scalac-scoverage-plugin_2.10:0.99.5' + scoverage 'org.scoverage:scalac-scoverage-plugin_2.11:1.0.1' } task groovydocJar(type: Jar, dependsOn: groovydoc) { diff --git a/gradle.properties b/gradle.properties deleted file mode 100644 index e6863cd..0000000 --- a/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -version=0.7-SNAPSHOT diff --git a/src/main/groovy/org/scoverage/ScoverageExtension.groovy b/src/main/groovy/org/scoverage/ScoverageExtension.groovy index a7848ef..14cc301 100644 --- a/src/main/groovy/org/scoverage/ScoverageExtension.groovy +++ b/src/main/groovy/org/scoverage/ScoverageExtension.groovy @@ -2,7 +2,8 @@ package org.scoverage import org.gradle.api.Action import org.gradle.api.Project -import org.gradle.api.artifacts.ResolvedConfiguration +import org.gradle.api.artifacts.Configuration +import org.gradle.api.file.FileCollection import org.gradle.api.plugins.JavaPlugin import org.gradle.api.plugins.scala.ScalaPlugin import org.gradle.api.tasks.JavaExec @@ -77,13 +78,14 @@ class ScoverageExtension { extension.dataDir.mkdirs() extension.reportDir.mkdirs() - ResolvedConfiguration s = t.configurations[ScoveragePlugin.CONFIGURATION_NAME].resolvedConfiguration - String pluginPath = s.getFirstLevelModuleDependencies().iterator().next().moduleArtifacts.iterator().next().file.absolutePath + Configuration configuration = t.configurations[ScoveragePlugin.CONFIGURATION_NAME] + File pluginFile = configuration.filter { it.name.contains('plugin') }.iterator().next() + FileCollection pluginDependencies = configuration.filter { it != pluginFile } t.tasks[ScoveragePlugin.COMPILE_NAME].configure { - List plugin = ['-Xplugin:' + pluginPath] + List plugin = ['-Xplugin:' + pluginFile.absolutePath] List parameters = scalaCompileOptions.additionalParameters if (parameters != null) { plugin.addAll(parameters) @@ -100,19 +102,18 @@ class ScoverageExtension { } scalaCompileOptions.additionalParameters = plugin // exclude the scala libraries that are added to enable scala version detection - classpath += t.configurations[ScoveragePlugin.CONFIGURATION_NAME] + classpath += pluginDependencies } t.tasks[ScoveragePlugin.TEST_NAME].configure { def existingClasspath = classpath classpath = t.files(t.sourceSets[ScoveragePlugin.CONFIGURATION_NAME].output.classesDir) + - project.configurations[ScoveragePlugin.CONFIGURATION_NAME] + + pluginDependencies + existingClasspath } t.tasks[ScoveragePlugin.REPORT_NAME].configure { - classpath = project.buildscript.configurations.classpath + - project.configurations[ScoveragePlugin.CONFIGURATION_NAME] + classpath = project.buildscript.configurations.classpath + configuration main = 'org.scoverage.ScoverageReport' args = [ extension.sources, diff --git a/src/main/groovy/org/scoverage/ScoverageReport.java b/src/main/groovy/org/scoverage/ScoverageReport.java index 06776b7..0b623ab 100644 --- a/src/main/groovy/org/scoverage/ScoverageReport.java +++ b/src/main/groovy/org/scoverage/ScoverageReport.java @@ -4,6 +4,7 @@ import scala.collection.Set; import scoverage.Coverage; import scoverage.IOUtils; +import scoverage.Serializer; import scoverage.report.CoberturaXmlWriter; import scoverage.report.ScoverageHtmlWriter; @@ -19,13 +20,14 @@ public static void main(String... args) { File sourceDir = new File(args[0]); File dataDir = new File(args[1]); File reportDir = new File(args[2]); + reportDir.mkdirs(); - File coverageFile = IOUtils.coverageFile(dataDir); + File coverageFile = Serializer.coverageFile(dataDir); File[] array = IOUtils.findMeasurementFiles(dataDir); // TODO: patch scoverage core to use a consistent collection type? Seq measurementFiles = scala.collection.JavaConversions.asScalaBuffer(Arrays.asList(array)); - Coverage coverage = IOUtils.deserialize(coverageFile); + Coverage coverage = Serializer.deserialize(coverageFile); Set measurements = IOUtils.invoked(measurementFiles); coverage.apply(measurements); diff --git a/src/test/happyday/build.gradle b/src/test/happyday/build.gradle index fa85c2b..5f69f1c 100644 --- a/src/test/happyday/build.gradle +++ b/src/test/happyday/build.gradle @@ -17,7 +17,8 @@ repositories { } dependencies { - scoverage 'org.scoverage:scalac-scoverage-plugin_2.11:0.99.5' + scoverage 'org.scoverage:scalac-scoverage-plugin_2.11:1.0.1', + 'org.scoverage:scalac-scoverage-runtime_2.11:1.0.1' compile 'org.scala-lang:scala-library:2.11.0' testCompile 'junit:junit:4.11' }