Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [tycho-dev] Regression(?) when moving to Tycho 4.0.0: "considered" POM dependencies no longer transitive

Please note that Tycho has moved to github for issues and discussions:

https://github.com/eclipse-tycho/tycho/issues
https://github.com/eclipse-tycho/tycho/discussions

Beside that the documentation says:

https://tycho.eclipseprojects.io/doc/latest/target-platform-configuration/target-platform-configuration-mojo.html#pomDependencies

Tycho always attempts to resolve transitive dependencies, so if you
need a POM dependency in the target platform of one module, you will also need it in all downstream modules. Therefore the POM dependencies (and the pomDependencies=consider configuration) typically need to be added in the parent POM.

So to summarize, all pom dependencies must be available in all modules and are not pulled from possibly required bundles necessarily.


Am 10.07.23 um 17:26 schrieb Andreas Sewe via tycho-dev:
Hi all,

I am currently trying to upgrade to Tycho 4.0.0 (from 3.0.5) and noticed the following change in behaviour when using pomDependencies=consider:

- My eclipse-plugin project org.example.plugin has POM <dependency> on org.example.library to satisfy some Import-Package.

- My eclipse-feature project org.example.feature simply has a <plugin> dependency on org.example.plugin in its feature.xml.

This results in the following error with Tycho 4.0.0:

[ERROR]   Software being installed: org.example.feature.feature.group 0.0.1.qualifier [ERROR]   Missing requirement: org.example.plugin 0.0.1.qualifier requires 'java.package; org.example.library [1.0.0,2.0.0)' but it could not be found [ERROR]   Cannot satisfy dependency: org.example.feature.feature.group 0.0.1.qualifier depends on: org.eclipse.equinox.p2.iu; org.example.plugin 0.0.0

With Tycho 3.0.5, this does not happen.

As a workaround, I can add the POM <dependency> on org.example.library also to my org.example.feature project, but this feels wrong: The feature does *not* itself depend on the library, only the plugin does.

I hence wonder whether this change in behaviour is really intentional or rather a regression.

(FWIW, this happens with both -Dtycho.resolver.classic=true and false; as expected, the former fails eagerly, whereas the latter only fails when org.example.feature is built.)

Best wishes,

Andreas



Back to the top