Search code examples
maventychoeclipse-pde

Maven+Tycho POM-less Unresolved dependencies for Eclipse XMLEditor Example Project


I have been stumped by this for close to a week. I am trying my had at creating an eclipse editor plugin for one of my company's DSLs.

I followed this tutorial to set up a plug-in, feature and update site. Clean and verify works as expected since there really isn't anything there! I do get a warning about a plugin having to contain at least one extension or extension point.

I then add an extension using the Extension Wizard in Eclipse for the basic XML Editor:

enter image description here

This adds 4 dependencies:

enter image description here

Now when I run mvn clean verify I get errors about not being able to resolve the dependencies:

[INFO] Scanning for projects...
C:\ui\bundles\com.mycompany.example.ui.editors.ontology\.polyglot.build.properties
C:\ui\features\com.mycompany.example.ui.feature\.polyglot.build.properties
[INFO] Computing target platform for MavenProject: com.mycompany.example.ui:com.mycompany.example.ui.editors.ontology:1.0.0-SNAPSHOT @ C:\ui\bundles\com.mycompany.example.ui.editors.ontology\.polyglot.build.properties
[INFO] Resolving dependencies of MavenProject: com.mycompany.example.ui:com.mycompany.example.ui.editors.ontology:1.0.0-SNAPSHOT @ C:\ui\bundles\com.mycompany.example.ui.editors.ontology\.polyglot.build.properties
[INFO] {osgi.os=win32, osgi.ws=win32, org.eclipse.update.install.features=true, osgi.arch=x86_64}
[ERROR] Cannot resolve project dependencies:
[ERROR]   Software being installed: com.mycompany.example.ui.editors.ontology 1.0.0.qualifier
[ERROR]   Missing requirement: com.mycompany.example.ui.editors.ontology 1.0.0.qualifier requires 'osgi.bundle; org.eclipse.core.runtime 0.0.0' but it could not be found
[ERROR] 
[ERROR] See http://wiki.eclipse.org/Tycho/Dependency_Resolution_Troubleshooting for help.
[ERROR] Cannot resolve dependencies of MavenProject: com.mycompany.example.ui:com.mycompany.example.ui.editors.ontology:1.0.0-SNAPSHOT @ C:\ui\bundles\com.mycompany.example.ui.editors.ontology\.polyglot.build.properties: See log for details -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MavenExecutionException

In the parent project POM I have the eclipse release repository like so:

<properties>
    <eclipse-repo.url>https://download.eclipse.org/releases/2019-06/</eclipse-repo.url>
</properties>

<repositories>
    <repository>
        <id>eclipse-release</id>
        <url>${eclipse-repo.url}</url>
        <layout>p2</layout>
    </repository>
</repositories>

Any help would be greatly appreciated! I also know about Xtext, but we already have a bunch of parsing/modeling/validation infrastructure and I was hoping to use this as the backbone of the editor instead of re-creating the DLS in xtext just to get an editor and then having two grammars to keep in sync.


Solution

  • there is another Bug in Maven 3.6.1 (https://issues.apache.org/jira/browse/MNG-6642) that prevents

    <repository>
        <id>eclipse-release</id>
        <url>${eclipse-repo.url}</url>
        <layout>p2</layout>
    </repository>
    

    from working. so use 3.6.0 (or 3.6.2 if you find a workaround for that other bug)

    or you use a real target platform instead of that repo list https://wiki.eclipse.org/Tycho/Target_Platform#Target_files