LemongrabThree
LemongrabThree

Reputation: 129

Maven Tycho Build Reports Missing Dependency Even Though Matching Artifact Available

I am trying to build an Eclipse RCP application with Tycho. The build says it cannot resolve a certain bundle. But the "missing" dependency at the end of the chain is available from one of the referenced P2 repos. Here is part of the error message (I put blank lines around the key line to make it more visible):

[ERROR]  Unresolved requirement: Require-Bundle: org.eclipse.jdt.ui; bundle-version="3.6.0"; visibility:="reexport"
[ERROR]    -> Bundle-SymbolicName: org.eclipse.jdt.ui; bundle-version="3.8.2.v20130107-165834"; singleton:="true"
[ERROR]       org.eclipse.jdt.ui [21]
[ERROR]         Unresolved requirement: Require-Bundle: org.eclipse.compare; bundle-version="[3.5.0,4.0.0)"
[ERROR]           -> Bundle-SymbolicName: org.eclipse.compare; bundle-version="3.5.301.v20130125-135424"; singleton:="true"
[ERROR]              org.eclipse.compare [48]
[ERROR]                Unresolved requirement: Require-Bundle: org.eclipse.ui.ide; bundle-version="[3.3.0,4.0.0)"
[ERROR]                  -> Bundle-SymbolicName: org.eclipse.ui.ide; bundle-version="3.8.2.v20121106-170106"; singleton:="true"
[ERROR]                     org.eclipse.ui.ide [11]
[ERROR]                       Unresolved requirement: Require-Bundle: org.eclipse.ui; bundle-version="[3.5.0,4.0.0)"
[ERROR]                         -> Bundle-SymbolicName: org.eclipse.ui; bundle-version="3.104.0.v20121024-145224"; singleton:="true"
[ERROR]                            org.eclipse.ui [8]
[ERROR]                              Unresolved requirement: Require-Bundle: org.eclipse.ui.workbench; bundle-version="[3.103.0,4.0.0)"; visibility:="reexport"
[ERROR]                                -> Bundle-SymbolicName: org.eclipse.ui.workbench; bundle-version="3.104.0.v20130204-164612"; singleton:="true"
[ERROR]                                   org.eclipse.ui.workbench [100]
[ERROR]                                     Unresolved requirement: Import-Package: org.eclipse.e4.ui.internal.workbench.swt
[ERROR]                                       -> Export-Package: org.eclipse.e4.ui.internal.workbench.swt; bundle-symbolic-name="org.eclipse.e4.ui.workbench.swt"; bundle-version="0.10.3.v20130124-133900"; version="0.0.0"; x-friends:="org.eclipse.e4.ui.workbench.addons.swt,org.eclipse.e4.ui.workbench.renderers.swt,org.eclipse.ui.workbench"
[ERROR]                                          org.eclipse.e4.ui.workbench.swt [82]

[ERROR]                                            Unresolved requirement: Require-Bundle: org.eclipse.core.databinding; bundle-version="[1.2.0,2.0.0)"

[ERROR]                                     Unresolved requirement: Import-Package: org.eclipse.e4.ui.internal.workbench.renderers.swt
[ERROR]                                       -> Export-Package: org.eclipse.e4.ui.internal.workbench.renderers.swt; bundle-symbolic-name="org.eclipse.e4.ui.workbench.renderers.swt"; bundle-version="0.10.3.v20130124-170312"; version="0.0.0"; x-internal:="true"
[ERROR]                                          org.eclipse.e4.ui.workbench.renderers.swt [81]
[ERROR]                                            Unresolved requirement: Require-Bundle: org.eclipse.e4.ui.workbench.swt; bundle-version="0.9.0"
[ERROR]                                              -> Bundle-SymbolicName: org.eclipse.e4.ui.workbench.swt; bundle-version="0.10.3.v20130124-133900"; singleton:="true"
[ERROR]                       Unresolved requirement: Require-Bundle: org.eclipse.ui.workbench; bundle-version="[3.7.0,4.0.0)"

Apparently, Tycho cannot satisfy the constraint Require-Bundle: org.eclipse.core.databinding; bundle-version="[1.2.0,2.0.0).

But one of the repos in my project's POM is https://download.eclipse.org/eclipse/updates/3.8:

    <repositories>
    ...
        <repository>
            <id>eclipse38</id>
            <layout>p2</layout>
            <url>http://download.eclipse.org/eclipse/updates/3.8/</url>
        </repository>
    ...
    </repositories>

I looked in there and, in one of the subfolders (https://download.eclipse.org/eclipse/updates/3.8/R-3.8.2-201301310800/plugins/), there is an artifact org.eclipse.core.databinding_1.4.1.v20120521-2332.jar. Why is this not getting used? A few of the other deps, for example org.eclipse.jdt.ui_3.8.2.v20130107-165834, are in that same repo, I imagine they must have come from there. The version of org.eclipse.core.databinding does match the specifier, does it not? What else could be going wrong here?

I am using Java 17, Maven 3.9.2, and Tycho 3.0.5 on Windows 11.

Bonus question: the second-last line in my error message points to a bundle:

-> Bundle-SymbolicName: org.eclipse.e4.ui.workbench.swt; bundle-version="0.10.3.v20130124-133900"; singleton:="true"

but there is no explanation of which constraint of org.eclipse.e4.ui.workbench.swt could not be satisfied. Am I correct in inferring that this is a reference to how org.eclipse.e4.ui.workbench.swt already failed to resolve earlier on?

Upvotes: 0

Views: 41

Answers (0)

Related Questions