Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Build Eclipse cross-platform with Maven Tycho

I try to compile an Eclipse Indigo RCP application with Maven and Tycho. It works fine if I just build it for one platform but if I try to build it for more the build stops working.

The Problem is that I have platform specific plugins in my product file I want to build. Dependencies like org.eclipse.swt.win32.win32.x86 which are fragment plugins for org.eclipse.swt.
When I add no platform specific fragments to my product the application wouldn't start because there are no platform libraries like org.eclipse.swt.win32.win32.x86. As Tycho repository we use a clone of the eclipse indigo update site hosted on our own server. It includes the delta-pack. And when I add all fragments for all platforms the build crashed and maven tell me that the platform filters did not match for the Linux build for example.

Does anyone know how to fix this?
Should I add these platform dependent stuff into my product? I prefer to keep the specific dependencies out of my product, am I right?

like image 750
Cake42 Avatar asked Nov 21 '12 15:11

Cake42


1 Answers

It sounds like you have a plug-in based product. In this case you will need to manually edit your .product file and add in platform filters for these plug-ins. Unfortunately the built-in product editor in eclipse does not expose these values. See http://wiki.eclipse.org/Tycho/FAQ#How_to_build_plugin-based_products_with_platform-specific_fragments.3F

For each plugin e.g. org.eclipse.swt.win32.win32.x86 you will need to add something like;

<plugin id="org.eclipse.swt.win32.win32.x86" fragment="true" ws="win32" os="win32" arch="x86"/>

Note, if you use the product editor it will remove these values.

It is better however to use a feature based product. The feature editor permits these fields to be edited.

like image 69
Simon Avatar answered Sep 21 '22 23:09

Simon