Replaces the standard Ivy resolution cache:
1. Separate the cached resolved Ivy files from resolution reports,
making resolution reports easier to find (target/resolution-cache/reports/)
2. Cache location includes extra attributes so that cross builds of a plugin
do not overwrite each other.
Overloading `%%` for library dependency to allow using a library built
with an alternative version of Scala that is different from the Scala
version used in the current build (but hopefully binary compatible).
This is useful in cases, where the binary build of a dependency with
the exact Scala version isn't yet available but an otherwise binary
compatible build (maybe with a previous Scala release) is available.
This support excluding a library from the dependency tree for a given
set of `ExclusionRule`s. There are two ways to achieve this:
- Using `organization` and `name` pairs:
val dep = "org" % "name" % "version" exclude("commons-codec", "commons-codec") exclude("org.slf4j", "slf4j-log4j")
- Using `ExclusionRule`:
val dep = "org" % "name" % "version" excludeAll(ExclusionRule("commons-codec", "commons-codec"), ExclusionRule("org.slf4j", "slf4j-log4j"))
- Modified name/signature of some private types/methods to reduce confusion (all in limited scope, so nothing should change from end user's pov)
- Enriched Ivy and Maven descriptors produced out of the box (see Keys.scala and Defaults.scala for more)
- Projects do not need to create custom Ivy <info/> block anymore, there is more settings-specific control instead
build and publish main sources and docs by default
control built-in artifacts with 'publish-artifact'
// disable publishing docs
publishArtifact in (Compile,packageDoc) := false
// enable publishing test jar, docs, and sources
publishArtifact in Test := true
set retrieve := true to have dependencies retrieved to the build
the location is by default shared by all projects in a build
(<built-root>/lib_managed/), but can be per-project
update-classifiers and update-sbt-classifiers retrieves artifacts with classifiers
for project dependencies and for sbt, respectively
The default setting is classifiers := Seq("javadoc", "sources")