How does the list of installable units in a target definition location affect dependency resolution?
Let’s say I have something like the following set of locations and units.
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<repository location="a hosted repo in MY NEXUS INSTANCE"/>
<unit id="com.google.guava" version="27.0.1.jre"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit">
<repository location="P2 proxy of upstream eclipse-2019-06 in MY NEXUS INSTANCE"/>
<!-- a bunch of installable units NOT INCLUDING guava -->
</location>
I would expect that this should force guava 27.0.1 to be resolved, but it does not.
Instead,
guava 21.0.0.v20170206-1425 is being resolved from the upstream P2 proxy repo.
From reading the wiki (https://wiki.eclipse.org/Tycho/Packaging_Types#eclipse-target-definition)
I expect that when I use a target definition the list of installable units defines the set from which dependencies are resolved. That is, dependency resolution should not consider all of the bundles in the repositories listed in the target definition. It
should only consider the installable units that I have listed.
Because this is not the behavior I am seeing, either my understanding must be wrong or dependency resolution is not working as expected.
Can someone who understands this please explain? If the list of units in the target definition does not define the set to be considered for dependency resolution, what is the point
to using a target definition?
Thanks!
Tony Homer
P.S. I know that I can use filtering (https://wiki.eclipse.org/Tycho/Target_Platform#Filtering)
to force a particular version and that is what I intend to do for now, but I don’t think I should have to do this. It seems to me that the target definition is not being applied in the way that I understand it should be, so I’d like to understand more details
about how it is applied. Thanks.