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
undeclaredCompileDependenciesand make the obvious missing dependencies explicit by adding them tolibraryDependenciesof each sub-project - (optionally) run
unusedCompileDependenciesand remove some obvious unused libraries. This has false positives, so; reload; Test/compileafter each change and ultimately run all tests to see that it didn't break anything - (optionally) add
undeclaredCompileDependenciesTestto 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.