An sbt plugin to create a dependency lockfile similar to package-lock.json for npm or Gemfile.lock for RubyGems.
Install the plugin by adding the following to project/plugins.sbt:
addSbtPlugin("software.purpledragon" % "sbt-dependency-lock" % "<version>")Then generate a lockfile with sbt dependencyLockWrite. This will resolve dependencies and output a lockfile containing
all dependencies (including transitive ones) to build.sbt.lock.
The lockfile can then be checked with sbt dependencyLockCheck:
[info] Dependency lock check passed
A mismatch between the lockfile and current dependencies will generate an error report:
[error] (dependencyLockCheck) Dependency lock check failed:
[error]   3 dependencies changed:
[error]     org.apache.commons:commons-lang3       (test)  -> (compile,test)  3.9 
[error]     org.scala-lang.modules:scala-xml_2.12  (test)                     1.2.0  -> 1.1.0 
[error]     org.scalactic:scalactic_2.12           (test)                     3.0.8  -> 3.0.7 
[error]     org.scalatest:scalatest_2.12           (test)                     3.0.8  -> 3.0.7 
See the docs for further information on how the plugin works.