@@ -2,7 +2,8 @@ package org.scoverage
22
33import org.gradle.api.Action
44import 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
67import org.gradle.api.plugins.JavaPlugin
78import org.gradle.api.plugins.scala.ScalaPlugin
89import 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