sbt, the interactive build tool
Go to file
Adrien Piquerez 5a0e9b2fe7 Try resolve sbt plugin from valid Maven pattern
sbt plugins were published to an invalid path with regard to Maven's
specifictation.

As of sbt 1.9 we produce two POMs, a deprecated one and a new one,
that is valid with regard to Maven resolution. When resolving,
we first try to resolve the new valid POM and we fallback to
the invalid one if needed.

In the new POM format, we append the sbt cross-version to all
artifactIds of sbt plugins. This is because we want Maven to be
able to resolve the plugin and all its dependencies.

When parsing it, we remove the cross-version suffix so that
the result of parsing the valid POM format is exactly the same
as parsing the deprecated POM format. Hence conflict resolution
happens as intended.

More details can be found at https://github.com/sbt/sbt/pull/7096
2022-12-23 16:08:05 +01:00
.github sbt 1.7.0 2022-07-10 23:09:51 -04:00
bin fixpreloaded.sh 2019-05-09 23:54:01 -04:00
core Formatting 2022-07-30 02:51:02 +00:00
ivy/src Try resolve sbt plugin from valid Maven pattern 2022-12-23 16:08:05 +01:00
notes Library management API 2017-07-15 11:17:23 -04:00
project Bump io, util, and scala-xml 2022-11-10 13:45:08 -05:00
scripted-test/src/sbt-test/lmScriptedTest adding multi-project test 2018-10-28 08:54:26 +00:00
.gitignore Add CrossVersionExtra.isBinaryCompatible utility 2022-06-25 21:41:10 +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 Util 1.7.1 2022-10-02 21:49:45 -04: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))