Changed the `maven-publish` and `ivy-publish` plugins to do a better job of calculating the coordinates to use to represent a project dependency in the generated metadata files. Previously, the plugins would fail when there were multiple publications in the target project with different coordinates. Now, the plugins will ignore publications that contain the variants of some other component that is included in another publication.
The C++ plugins use this to inform the publishing plugins (and whatever else cares) which publication is the 'main' publication of the project. The main publication holds details of the component as a whole and is intended to be the 'entry point' for the component.
Using this allows a not-quite-correct workaround to be removed from the C++ plugins and that project dependencies are mapped to coordinates in a consistent way for both C++ and Java components, by shared logic.
17 Sep 17 682cda0650fc548b014f5769a27757084c616c84
Revert De-duplicate commonly used immutable objects in dependency resolution and IDE changes
Additionally, minor changes to avoid usage of introduced
classes and methods from subsequent commits.
03 Nov 16 5d11ba7bc3d79aa2fbe7c30a022766f4532bbe0f