views:

387

answers:

2

We have an Eclipse RCP product, which means it depends on a number of Eclipse plugins (for the UI etc). We have set up a reference Eclipse ("target") to supply the latter.

Our product also depends on a number of third party plugins. Is there a standard location for these to be put?

We have a few of our third-party plugins in the /plugins of the target Eclipse, but this seems wrong to me. The third party plugins change more frequently than, or at least in a different timeframe to, our reference Eclipse.

I tried putting some third party plugins in a separate project in the workspace (under version control), but the PDE headless build did not seem to find them - even though I used the pluginPath property in the headless build.properties.

This is Eclipse 3.4.2. I am aware than the handling of target platforms has changed somewhat in 3.5.

Most of the comments I've seen see on the web about this seem to assume that you're writing a plugin to be added to a standard Eclipse installation. We're not, it's a completely separate product.

A: 

There isn't a standard that I know of for where 3rd part plugins should go. You can define an external extension location and store your party plugins/features there. This also allows you to reuse the plugins in multiple Eclipse installs if you wish.

You add an Extension location by going to Ganymede onwards: Help->Software Updates->Available Software->Add Site->Local Older versions: Help->Software Updates->Manage Configuration->Add Extension Location

For Ganymede onwards, the extension locations work a bit differently (IIRC the plugins are copied to the standard Eclipse install, which kind of defeats the point),there is however a new concept called dropins that you might find useful.

Rich Seller
+2  A: 

For my RCP applications I created a customized target platform directory for it to use (e.g. rcpapptarget). Under that directory I unzip the following packages:

  • eclipse-RCP-SDK-3.4.2-win32.zip
  • eclipse-3.4.2-delta-pack.zip

Then I add what ever other eclipse or third party plug-ins that my application will need. For example:

  • the latest GEF all .zip file
  • jay libs EclipseCallBasic_1.1.0 plug-in
  • derby distributed plug-in
  • additional eclipse plug-ins needed for help support, cheatsheets, updates etc.

I then setup a workspace for developing that RCP application and point the workspace's "Target Platform" to use that customized target platform directory. I do all my development using that target platform and my headless builds use it too.

To set the target platform choose the Window | Preferences command and then select Plug-in Development | Target Platform from the preference tree. Set the "Location" to point to the directory you created.

Ian Leslie