Dependencies
Dependencies in Bleep are specified almost like in sbt, mill and so on
Java dependency
Java dependencies separate coordinate parts by colon (like sbt's %
)
- org.scalameta:svm-subs:101.0.0
Scala dependency
Scala dependencies use two colons after organization (similar to sbt's %%
)
- com.monovore::decline:2.3.1
Scala.js / Scala Native dependency
Surprise! These also use two colons, not three like in sbt.
- com.lihaoyi::pprint:0.8.0
But that's not like sbt does it!?
Bleep flips the default, the easiest syntax should be used for the most common thing.
If you want to add such a Scala JVM dependency to a JS/Native project, you can use the long form and a boolean flag
- forceJvm: true
module: com.softwaremill.sttp.client3::httpclient-backend-fs2:3.3.18
Long form
As seen above, if you manually change this short form
- org.scala-sbt::librarymanagement-core:1.7.1
to this long form:
- module: org.scala-sbt::librarymanagement-core:1.7.1
you can now tweak the dependency further.
- exclusions:
org.scala-sbt: util-logging_2.13
for3Use213: true
module: org.scala-sbt::librarymanagement-core:1.7.1
You'll also get IDE support for navigating this:
Dependency upon sbt plugins
This lets you build sbt plugins with bleep (note that publishing is not implemented yet)
dependencies:
- isSbtPlugin: true
module: ch.epfl.scala:sbt-scalajs-bundler:0.20.0
- configuration: provided
module: org.scala-sbt:sbt:1.5.5
Limitations
Note that Bleep has shed support for the most intricate ivyisms. What is left makes the structure much more cacheable, and should be enough for 99% of projects.