Skip to content

Commit 6686446

Browse files
committed
1) instrumentation requires a single plugin jar and the runtime jar must be also be supplied on the classpath
2) testing instrumented code does not require the plugin jar 3) reporting on coverage files requires all scoverage jars.
1 parent f36fde7 commit 6686446

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

src/main/groovy/org/scoverage/ScoverageExtension.groovy

+9-8
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ package org.scoverage
22

33
import org.gradle.api.Action
44
import org.gradle.api.Project
5-
import org.gradle.api.artifacts.ResolvedConfiguration
5+
import org.gradle.api.artifacts.Configuration
6+
import org.gradle.api.file.FileCollection
67
import org.gradle.api.plugins.JavaPlugin
78
import org.gradle.api.plugins.scala.ScalaPlugin
89
import org.gradle.api.tasks.JavaExec
@@ -77,13 +78,14 @@ class ScoverageExtension {
7778
extension.dataDir.mkdirs()
7879
extension.reportDir.mkdirs()
7980

80-
ResolvedConfiguration s = t.configurations[ScoveragePlugin.CONFIGURATION_NAME].resolvedConfiguration
81-
String pluginPath = s.getFirstLevelModuleDependencies().iterator().next().moduleArtifacts.iterator().next().file.absolutePath
81+
Configuration configuration = t.configurations[ScoveragePlugin.CONFIGURATION_NAME]
82+
File pluginFile = configuration.filter { it.name.contains('plugin') }.iterator().next()
83+
FileCollection pluginDependencies = configuration.filter { it != pluginFile }
8284

8385
t.tasks[ScoveragePlugin.COMPILE_NAME].configure {
8486

8587

86-
List<String> plugin = ['-Xplugin:' + pluginPath]
88+
List<String> plugin = ['-Xplugin:' + pluginFile.absolutePath]
8789
List<String> parameters = scalaCompileOptions.additionalParameters
8890
if (parameters != null) {
8991
plugin.addAll(parameters)
@@ -100,19 +102,18 @@ class ScoverageExtension {
100102
}
101103
scalaCompileOptions.additionalParameters = plugin
102104
// exclude the scala libraries that are added to enable scala version detection
103-
classpath += t.configurations[ScoveragePlugin.CONFIGURATION_NAME]
105+
classpath += pluginDependencies
104106
}
105107

106108
t.tasks[ScoveragePlugin.TEST_NAME].configure {
107109
def existingClasspath = classpath
108110
classpath = t.files(t.sourceSets[ScoveragePlugin.CONFIGURATION_NAME].output.classesDir) +
109-
project.configurations[ScoveragePlugin.CONFIGURATION_NAME] +
111+
pluginDependencies +
110112
existingClasspath
111113
}
112114

113115
t.tasks[ScoveragePlugin.REPORT_NAME].configure {
114-
classpath = project.buildscript.configurations.classpath +
115-
project.configurations[ScoveragePlugin.CONFIGURATION_NAME]
116+
classpath = project.buildscript.configurations.classpath + configuration
116117
main = 'org.scoverage.ScoverageReport'
117118
args = [
118119
extension.sources,

0 commit comments

Comments
 (0)