Some of these practices might be based on wrong assumptions and I'm not aware of it, so I would appreciate any feedback.
-
avoiding some dependency conflicts:
- install sbt-explicit-dependencies globally in your
~/.sbt/{0.13,1.0}/plugins/plugins.sbt
- run
undeclaredCompileDependencies
and make the obvious missing dependencies explicit by adding them tolibraryDependencies
of each sub-project - (optionally) run
unusedCompileDependencies
and remove some obvious unused libraries. This has false positives, so; reload; Test/compile
after each change and ultimately run all tests to see that it didn't break anything - (optionally) add
undeclaredCompileDependenciesTest
to the CI pipeline, so that it will fail if you have some undeclared dependencies
- install sbt-explicit-dependencies globally in your
-
keeping dependencies up to date and resolving conflicts:
- install sbt-updates globally in your `~/.sbt/{0.13,1.0}/plugins/plugins.