Skip to content

Commit b6a6d22

Browse files
authored
Merge pull request #183 from lustefaniak/scoverage-scalac-plugin-version-support
Add coverageScalacPluginVersion setting key
2 parents 24b304f + e9bea43 commit b6a6d22

File tree

5 files changed

+32
-2
lines changed

5 files changed

+32
-2
lines changed

src/main/scala/scoverage/ScoverageKeys.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,4 +17,5 @@ object ScoverageKeys {
1717
lazy val coverageOutputDebug = settingKey[Boolean]("turn on the debug report")
1818
lazy val coverageCleanSubprojectFiles = settingKey[Boolean]("removes subproject data after an aggregation")
1919
lazy val coverageOutputTeamCity = settingKey[Boolean]("turn on teamcity reporting")
20+
lazy val coverageScalacPluginVersion = settingKey[String]("version of scalac-scoverage-plugin to use")
2021
}

src/main/scala/scoverage/ScoverageSbtPlugin.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,11 @@ object ScoverageSbtPlugin extends AutoPlugin {
3030
coverageReport <<= coverageReport0,
3131
coverageAggregate <<= coverageAggregate0,
3232
ivyConfigurations := ivyConfigurations.value :+ ScoveragePluginConfig,
33+
coverageScalacPluginVersion := DefaultScoverageVersion,
3334
libraryDependencies ++= {
3435
if (coverageEnabled.value) Seq(
35-
OrgScoverage % (ScalacRuntimeArtifact + "_" + scalaBinaryVersion.value) % DefaultScoverageVersion,
36-
OrgScoverage % (ScalacPluginArtifact + "_" + scalaBinaryVersion.value) % DefaultScoverageVersion % "scoveragePlugin->default(compile)"
36+
OrgScoverage % (ScalacRuntimeArtifact + "_" + scalaBinaryVersion.value) % coverageScalacPluginVersion.value,
37+
OrgScoverage % (ScalacPluginArtifact + "_" + scalaBinaryVersion.value) % coverageScalacPluginVersion.value % "scoveragePlugin->default(compile)"
3738
) else Nil
3839
},
3940
scalacOptions in(Compile, compile) ++= scoverageScalacOptions.value,
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
lazy val root = (project in file(".")).settings(
2+
coverageEnabled := true,
3+
coverageScalacPluginVersion := "1.1.0"
4+
)
5+
TaskKey[Unit]("check") := {
6+
assert(
7+
libraryDependencies.value
8+
.filter(module =>
9+
module.organization == "org.scoverage" && module.revision == "1.1.0")
10+
.size == 2)
11+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
// The Typesafe repository
2+
resolvers += "Typesafe repository" at "http://repo.typesafe.com/typesafe/releases/"
3+
4+
//scoverage needs this
5+
resolvers += Classpaths.sbtPluginReleases
6+
7+
{
8+
val pluginVersion = System.getProperty("plugin.version")
9+
if(pluginVersion == null)
10+
throw new RuntimeException("""|The system property 'plugin.version' is not defined.
11+
|Specify this property using the scriptedLaunchOpts -D.""".stripMargin)
12+
else addSbtPlugin("org.scoverage" %% "sbt-scoverage" % pluginVersion)
13+
}
14+
15+
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# assert coverageScalacPluginVersion is taken into account when generating libraryDependencies
2+
> check

0 commit comments

Comments
 (0)