Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse 4 » Tycho build fails missing org.eclipse.equinox.executable.feature.group 0.0.0
Tycho build fails missing org.eclipse.equinox.executable.feature.group 0.0.0 [message #1749322] Mon, 05 December 2016 14:41 Go to next message
Steffen Hoffmann is currently offline Steffen HoffmannFriend
Messages: 1
Registered: December 2016
Junior Member
Hi all

We are trying to migrate (based on compatibility layer only) our RCP 3.8 application to 4.6.1 using Maven/Tycho. Our client product includes native launcher artifacts and therefore we are in trouble with the tycho build. Unsatisfied dependencies from our client product to org.eclipse.equinox.executable.feature.group.feature.group 0.0.0 are reported by Tycho

Our setup:

1. Our target platform is based on a custom configuration: We defined all the locations of type Directory (no ) containing the required libraries and the generated p2 infos (by org.eclipse.equinox.p2.publisher.FeaturesAndBundlesPublisher)

2. We did this also for the eclipse sdk related libs! The p2 repos are generated properly. So native launchers should be also included, are part of the target platform, too. Right?

Inside the Eclipse IDE (Luna SR2) the pde build works fine. (OK, we get a warning message Setting the target platform because the SDK of our IDE is older than the SDK of our target platform. Possible impacts related to pde are mentioned. But pde build works properly.)

But regarding Maven/Tycho build we are in a mess:

DEBUG] No solution found because the problem is unsatisfiable.: [Unable to satisfy dependency from ch.abraxas.taxsg.quest.client.prd 0.2.0.qualifier to org.eclipse.equinox.executable.feature.group 0.0.0.; No solution found because the problem is unsatisfiable.]
[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: ch.abraxas.taxsg.quest.client.prd 0.2.0.qualifier
[ERROR] Missing requirement: ch.abraxas.taxsg.quest.client.prd 0.2.0.qualifier requires 'org.eclipse.equinox.executable.feature.group 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: ch.abraxas.taxsg:taxsg-quest-client-prd:3.0.0 @ D:\gitrepos\solutions-all\taxsg-quest\taxsg-quest-client-prd\pom.xml: See log for details -> [Help 1]
org.apache.maven.MavenExecutionException: Cannot resolve dependencies of MavenProject: ch.abraxas.taxsg:taxsg-quest-client-prd:3.0.0 @ D:\gitrepos\solutions-all\taxsg-quest\taxsg-quest-client-prd\pom.xml
at org.eclipse.tycho.core.maven.TychoMavenLifecycleParticipant.afterProjectsRead(TychoMavenLifecycleParticipant.java:100)


What we also tried to get rid off it was

1. Defined a unit id fpr the feature in the target platform file

<location includeAllPlatforms="false" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit">
<unit id="org.eclipse.equinox.executable.feature.group" version="0.0.0"/>
<location path="${git_root}/solutions-all/rcp_target_platform/repo_eclipse_tp" type="Directory"/>
</location>

-> no success Sad

2. added an extra requirement in the pom of the client product

<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration </artifactId>
<version>${version.tycho-maven-plugin}</version>
<configuration>
<dependency-resolution>
<extraRequirements>
<requirement>
<type>eclipse-feature</type>
<id>org.eclipse.equinox.executable.feature.group</id>
<versionRange>0.0.0</versionRange>
</requirement>
</extraRequirements>
</dependency-resolution>
</configuration>
</plugin>

-> no success Sad


The problem still exists. Any recommendations? Thank's a lot!

[Updated on: Tue, 13 December 2016 12:14]

Report message to a moderator

Re: Tycho build fails missing org.eclipse.equinox.executable.feature.group 0.0.0 [message #1752546 is a reply to message #1749322] Wed, 25 January 2017 01:27 Go to previous messageGo to next message
Patrik Suzzi is currently offline Patrik SuzziFriend
Messages: 86
Registered: June 2010
Location: Imola, Italy
Member

Tycho resolves dependencies against p2 repositories (remote or local). It uses the information in plugin.xml. The dependencies are declared in MANIFEST.MF
Anything that is a plugin dependency should come from a p2 repository, or from a plug-in project included in the build (so the maven reactor can satisfy the dependencies).
If you use specific Java libraries, I suggest you add them to the bundle classpath: in the plugin.xml, Runtime tab, Classpath section. (verify they are included in the build).
If you use native libraries, I suggest you put them in the base folder of your project and ensure you have a task that copies those natives under the path where Maven is building (by default maven builds under the /target directory).

To fully understand the Tycho build, the best resource is the "Tycho demo tutorial," by J.Sievers. Download it; start reading the index.html; and follow the tutorial until the end. Once done, it will be easy to understand how to modify the tutorial to achieve a Tycho build for your plugin, product, or set of products.
- here is the link: https://github.com/jsievers/tycho-demo

If you need other pointers, please see also:
- for Theory: https://www.eclipsecon.org/na2014/sites/default/files/slides/Tycho%20Tutorial%20-%20Introduction.pdf
- extensive reference/tutorial: http://www.vogella.com/tutorials/EclipseTycho/article.html

If you have other doubts, please try to summarize and formalize them, and respond on this thread.

Kind Regards,

Ing. Patrik Suzzi
Consultant Software Engineer,
Eclipse Platform Committer
https://about.me/psuzzi
Re: Tycho build fails missing org.eclipse.equinox.executable.feature.group 0.0.0 [message #1773533 is a reply to message #1752546] Fri, 29 September 2017 00:20 Go to previous messageGo to next message
Nicolas Rouquette is currently offline Nicolas RouquetteFriend
Messages: 38
Registered: December 2014
Member
Well, I'm running into this problem as well in our project (https://github.com/JPL-IMCE/gov.nasa.jpl.imce.oml).

As a developer, there are several factors that make Tycho's behavior difficult to understand and troubleshoot:

1) Dependency management

I understand there are two paradigms:
- POM-first
- Bundle-first (aka Manifest-first)

It's difficult to find authoritative info about this.
In the end, there are pros/cons; not a clear winning strategy.
See: https://stackoverflow.com/a/11373010/1009693

2) Troubleshooting dependencies w.r.t. Eclipse target

While Tycho reports missing dependencies in terms of the qualified name of a P2 installable unit,
the configuration of the Eclipse target is defined in terms of the *user name* of such units.

This results in a disconnect where, e.g., Tycho says:

[ERROR] Cannot resolve project dependencies:
[ERROR] Software being installed: gov.nasa.jpl.imce.oml.rcp.product 0.9.0.qualifier
[ERROR] Missing requirement: gov.nasa.jpl.imce.oml.rcp.product 0.9.0.qualifier requires 'org.eclipse.equinox.executable.feature.group 0.0.0' but it could not be found
[ERROR]

But I can't find anywhere on the Eclipse target editor where 'org.eclipse.equinox.executable.feature.group' comes from!

- Nicolas.




Re: Tycho build fails missing org.eclipse.equinox.executable.feature.group 0.0.0 [message #1773540 is a reply to message #1773533] Fri, 29 September 2017 05:56 Go to previous message
Dirk Fauth is currently offline Dirk FauthFriend
Messages: 2526
Registered: July 2012
Senior Member
Your problem is not POM-first vs. MANIFEST-first ... your problem is the definition of a target platform and that PDE uses p2 and things are sometimes inconsistent.

The basic idea of Tycho is to reduce the amount of configuration work for the automated build. As an Eclipse RCP developer you typically specify a Target Platform and define the dependencies of your plugins/bundles manually at development time. This is how it works with PDE. As you have done this already, there should be no need to do this again for building. So for Eclipse RCP development with PDE, Tycho is a perfect match. That comes even more to play when you consider pom-less Tycho.
In other scenarios, day using bndtools for example, Tycho doesn't fit well.

So there is a clear strategy. When using PDE for creating OSGi bundles, use Tycho as you will have the most benefit out of it. If you are using other tools like bndtools, use different approaches as there a MANIFEST-first approach will not work. (BTW you are referring to a 5 year old post, and the world has evolved since then).

But yes, the names shown by Tycho errors and the ones shown in the target editor are not the same. I switched to using a text based editor for target definitions a while ago. Started with https://github.com/mbarbero/fr.obeo.releng.targetplatform and in Oxygen you could use the Generic Text Editor. Both support code completion.

'org.eclipse.equinox.executable.feature.group' is also known as 'Eclipse Platform Launcher Executables'.

I have written a getting started with Eclipse 4 blog some years ago: https://blog.codecentric.de/en/2015/02/eclipse-rcp-cookbook-basic-recipe/
Probably not up-to-date in detail, but that part should be covered.

We have written a migration guide that should help: https://jaxenter.de/tutorial-so-portieren-sie-eclipse-3-anwendungen-auf-eclipse-4-39492
Unfortunately not yet translated to English.

In GitHub you can find sources for a simple migration scenario that might be also helpful: https://github.com/fipro78/e4-cookbook-migration-guide

Hope that helps
Previous Topic:Headless Eclipse/E4 Applications?
Next Topic:Handled Menu Item Icons
Goto Forum:
  


Current Time: Wed Nov 22 20:33:46 GMT 2017

Powered by FUDForum. Page generated in 0.01828 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software