sbt, the interactive build tool
Go to file
Eugene Yokota 12d46e3fce Make ModuleID#cross(...) preserve existing prefix
Fixes https://github.com/sbt/sbt/issues/6280

sbt-platform-deps implements `%%%` operator in https://github.com/portable-scala/sbt-platform-deps/blob/v1.0.0/src/main/scala/org/portablescala/sbtplatformdeps/PlatformDepsBuilders.scala#L36-L43
by setting the prefix field on `sbt.librarymanagement.Binary(...)`.
Currently `.cross(...)` would wipe this out, so `%%%` and `cross(CrossVersion.for3Use2_13)` do not compose.

This changes the implementation of `.cross(...)` so it can be chained
together and it will try to preserve the prefix (and suffix) values from
the existing `crossVersion` values.
This should fix the 2.13-3.x sandwich on Scala.JS and Scala Native.
2021-01-23 15:47:33 -05:00
.github Add Scala 2.13 support 2021-01-03 00:59:38 -05:00
bin fixpreloaded.sh 2019-05-09 23:54:01 -04:00
core Make ModuleID#cross(...) preserve existing prefix 2021-01-23 15:47:33 -05:00
ivy/src Add for3Use2_13 and for2_13Use3 2021-01-08 18:25:01 +01:00
notes Library management API 2017-07-15 11:17:23 -04:00
project Make ModuleID#cross(...) preserve existing prefix 2021-01-23 15:47:33 -05:00
scripted-test/src/sbt-test/lmScriptedTest adding multi-project test 2018-10-28 08:54:26 +00:00
.gitignore fix 2018-10-16 12:35:23 +01:00
.java-version Cross publish to Scala 2.12 2017-01-07 00:49:45 -05:00
.scalafmt.conf Deprecate HTTP resolvers 2019-08-01 16:20:22 -04:00
README.md rename to DependencyResolutionInterface 2017-07-15 11:17:23 -04:00
build.sbt Update to Scala 2.12.13 + 2.13.4 2021-01-17 04:18:49 -05:00
sbt-allsources.sh sbt-contraband 0.3.0-M4 2017-03-17 23:03:37 -04:00

README.md

librarymanagement module for sbt

scala> import java.io.File
import java.io.File

scala> import sbt.librarymanagement._, syntax._
import sbt.librarymanagement._
import syntax._

scala> val log = sbt.util.LogExchange.logger("test")
log: sbt.internal.util.ManagedLogger = sbt.internal.util.ManagedLogger@c439b0f

scala> val lm = {
         import sbt.librarymanagement.ivy._
         val ivyConfig = InlineIvyConfiguration().withLog(log)
         IvyDependencyResolution(ivyConfig)
       }
lm: sbt.librarymanagement.DependencyResolution = sbt.librarymanagement.DependencyResolution@6a9b40f8

scala> val module = "commons-io" % "commons-io" % "2.5"
module: sbt.librarymanagement.ModuleID = commons-io:commons-io:2.5

scala> lm.retrieve(module, scalaModuleInfo = None, new File("target"), log)
res0: Either[sbt.librarymanagement.UnresolvedWarning,Vector[java.io.File]] = Right(Vector(target/jars/commons-io/commons-io/commons-io-2.5.jar, target/jars/commons-io/commons-io/commons-io-2.5.jar, target/jars/commons-io/commons-io/commons-io-2.5.jar))