I can summarize it here:
- maven dependency resolution is dated, lacking, sucks, and has conflicts people don't know about, can't fix, and suffer with for years.
- kotlin will have some deadly conflicts, especially with inline functions and static calls, when project A uses lib B compiled with inlines against C, then A changes C, B can blow up or even call wrong methods.
- you have to be able to fix things back-in-time for bad dependencies
- you have to have more attributes than group/artifact/version (JDK, ABI, binary compatible, upgradable, DO NOT USE, ...)
- you have to resolve the whole build at once, not just single dependency at a time.
- ...