Friday, July 6, 2007

How to deal with many Eclipses

Sometimes you are not only a Java, C++, Python, Ruby or web programmer. There are days when you need to deal with many technologies. And even if you are only a Java developer – remember we are in Eclipse Europe age. This means many great tools but also huge plugins set. If you are lucky then probably you will newer suffer from memory shortages or Windows Vista behavior in your Eclipse.

I want to tell you about nothing newest and noteworthy but something old and forgotten (especially at my university).

At first I will tell you how does it look now. If you need only Java you download fast and furious Eclipse from But after that you needs some testing, code coverage, debugging and profiling. So EMF, TPTP flies to your plugin folder. After some time simple web application is needed – WTP. And so on and so on. Oh, I’ve forgot about Mylyn – we are task oriented ;). But with every minute (and with a workspace size) our Eclipse is slower and more space consuming.

Till today I had four Eclipses. One for C/C++ developing one for web, plugins and Java one for profiling and one for experiments ;).

But there is an option how to reuse one eclipse installation - -configuration switch. This is my solution:

Download each feature to separate location.

Choose needed features from update site. You can specify location for each feature separately.

Add locations to your product configuration

This should be already done if you followed last paragraph. But something could happen between lines. So lets assume you have only one site with CDT but you also need Mylyn.

Above is my product configuration. One this you can do is disabling the specific feature location. So if you want remove some functions temporary from your Eclipse this is option for you. To add new location use view menu

Clone product configurations

This is very easy step and can be done in two ways.

First – copy configuration dir to different location.

Second – use eclipse –initialize – configuration

Modify it to your needs

To deal with different set of features one file is needed /org.eclipse.update/platform.xml. If we have followed different locations for each feature rule we should see something similar to this code:

<?xml version="1.0" encoding="UTF-8"?>
<config date="1183550870687" transient="false" version="3.0">
<site enabled="true" policy="USER-EXCLUDE" updateable="true" url="file:../plugins/mylyn/eclipse/">
<feature id="org.eclipse.mylyn.java_feature" plugin-identifier="org.eclipse.mylyn" url="features/org.eclipse.mylyn.java_feature_2.0.0.v20070628-1000/" version="2.0.0.v20070628-1000">

<site enabled="true" policy="USER-EXCLUDE" updateable="true" url="platform:/base/">
<site enabled="true" policy="USER-EXCLUDE" updateable="true" url="file:../plugins/cdt/eclipse/">
<feature id="org.eclipse.cdt" url="features/org.eclipse.cdt_4.0.0.200706261300/" version="">

You have many (in this example two ;) ) with different features. So if you need configuration for Java + profiling you choose TPTP and basic site.

That’s all now you need to start your Eclipse with suitable parameter.

It is even more useful if you work in team. Then only thing you need is to put all features to network drive. Additional advantage is that all developers have almost the same Eclipse configuration.

Hope it helps ;)

1 comment:

AMR said...

Sorry, this will not work for all of plugins, ie TPTP plugins will add invalid path entries. My issue for this is still unresolved (for more than a year :( here)