Sunday 15 March 2015

scala - Why sbt makes resolution for all dependencies when only one changed? -


When I change one of the dependencies of the project, then sbt resolutions for all the dependencies (Not only what has changed). This is especially the time when such unnecessary proposals are prepared for each project in the multi-module project.

Why does SBT make such a futile proposal? Is there any way to make resolution more intelligent?

The main reason is that the SBT needs to be resolved conflicts . Not only this, but IVs need to solve all -SNAPSHOT dependencies often so that they can be sure that they have updated information, because by default, instead of the "closest" used by SBT Meven, a " The latest "dispute solution manager uses this, in my experience, leads to fewer issues with artifact versions. However, this means, as Mark says, it will rebuild the whole drip tree.

All proposals in SBT have been handed over to Ivy. To make it more intelligent, you have to make hooks for Ivy or otherwise use dependency management library SBT. In the case of this resolution, I think that can be done to improve the cache in such a way that has reduced the amount of time to restore the information of previous cached artifacts.

No comments:

Post a Comment