Port dependency-management/provided-multi

This commit is contained in:
Eugene Yokota 2016-03-29 01:02:32 -04:00
parent 1f73d9eadc
commit 3f4195022d
3 changed files with 23 additions and 29 deletions

View File

@ -1,25 +0,0 @@
import sbt._
import Keys._
import Import._
object P extends Build
{
override def settings = super.settings ++ Seq(
scalaBinaryVersion in update := "2.9.0"
)
def configIvyScala =
ivyScala ~= { _.map(_.copy(checkExplicit = false)) }
val declared = SettingKey[Boolean]("declared")
lazy val a = Project("A", file("a")) settings(
libraryDependencies += "org.scala-tools.sbinary" %% "sbinary" % "0.4.0" % "provided",
configIvyScala
)
lazy val b = Project("B", file("b")) dependsOn(a) settings(
libraryDependencies <<= declared(d => if(d) Seq("org.scala-tools.sbinary" %% "sbinary" % "0.4.0" % "provided") else Nil),
declared <<= baseDirectory(_ / "declare.lib" exists),
configIvyScala
)
}

View File

@ -0,0 +1,19 @@
def configIvyScala =
ivyScala ~= { _.map(_.copy(checkExplicit = false)) }
val declared = SettingKey[Boolean]("declared")
lazy val a = project.
settings(
libraryDependencies += "org.scala-tools.sbinary" %% "sbinary" % "0.4.0" % "provided",
configIvyScala,
scalaBinaryVersion in update := "2.9.0"
)
lazy val b = project.
dependsOn(a).
settings(
libraryDependencies <<= declared(d => if(d) Seq("org.scala-tools.sbinary" %% "sbinary" % "0.4.0" % "provided") else Nil),
declared <<= baseDirectory(_ / "declare.lib" exists),
configIvyScala,
scalaBinaryVersion in update := "2.9.0"
)

View File

@ -1,11 +1,11 @@
$ copy-file changes/P.scala project/P.scala
$ copy-file changes/p.sbt p.sbt
$ copy-file changes/A.scala a/src/main/scala/A.scala
$ copy-file changes/B.scala b/src/main/scala/B.scala
> reload
> A/compile
-> B/compile
> a/compile
-> b/compile
$ touch b/declare.lib
> reload
> compile
> compile