mirror of https://github.com/sbt/sbt.git
28 lines
1.4 KiB
Markdown
28 lines
1.4 KiB
Markdown
[coursier](http://github.com/coursier/coursier) is a dependency resolver / fetcher *à la* Maven / Ivy, entirely
|
|
rewritten from scratch in Scala. It aims at being fast and easy to embed
|
|
in other contexts. Its very core (`core` module) aims at being
|
|
extremely pure, and only requires to be fed external data (Ivy / Maven metadata) via a monad.
|
|
|
|
It handles fancy Maven features like
|
|
|
|
* POM inheritance,
|
|
* dependency management,
|
|
* import scope,
|
|
* properties,
|
|
* etc.
|
|
|
|
and is able to fetch metadata and artifacts from both Maven and Ivy repositories.
|
|
|
|
Compared to the default dependency resolution of SBT, it adds:
|
|
|
|
* downloading of artifacts in parallel,
|
|
* better offline mode - one can safely work with snapshot dependencies if these are in cache (SBT tends to try and fail if it cannot check for updates),
|
|
* non obfuscated cache (cache structure just mimicks the URL it caches),
|
|
* no global lock (no "Waiting for ~/.ivy2/.sbt.ivy.lock to be available").
|
|
|
|
From the command-line, it also has:
|
|
* a [launcher](https://github.com/coursier/coursier#launch), able to launch apps distributed via Maven / Ivy repositories,
|
|
* a [bootstrap](https://github.com/coursier/coursier#bootstrap) generator, able to generate stripped launchers of these apps.
|
|
|
|
Lastly, it can be used programmatically via its [API](https://github.com/coursier/coursier#api) and has a Scala JS [demo](https://github.com/coursier/coursier#scala-js-demo).
|