I apologize if this is a stupid question, but: what are the indented uses for "exclusions." I am asking because I think I may have. a scheme to avoid needing them in the same form
To exclude transitive deps, either because you know you don't need it, or to remove it from consideration and supply a different version explicitly
> or to remove it from consideration and supply a different version explicitly Mechanically, wouldn't supplying a different version at the top level also serve this goal?
or rather, my thought is that this is only needed because if i want to replace fruits.eat/orange with something that supplies the same API, I can get that from the repo in healthy.foods/orange but I can't say "for purposes of resolution, the orange artifact from this group id is equivalent to the orange artifact from this other group id."
Supplying a top level version alone is sufficient - if you control the top level. As a library, you never control the real top level though
There is no mechanism for aliasing, although that would be useful at times if you wanted to like switch to a fork. But again, as a library, you don't really control that
If you have two libs with the same namespaces, final classpath ordering controls which is used and the assumption is that artifacts are disjoint
(So order doesn't matter)
Okay so that basically tracks with my understanding