How do you manage your Eclipse installation? - eclipse

How do you manage your Eclipse installation, i.e. the basic installation, plug-ins and workspace settings with regard to consistent updates (including major ones, 3.5 => 3.6) and usage on two or more computers (desktop + notebook).
My current setup is to basically managing the installation on several installations in parallel, i.e. manually add new plug-ins I installed on one to the other, and when I haven't used one in a long time to copy the whole directory from one location to the other.
For updates I usually run it about once a month to get the latest versions, major updates I do manually by downloading the basic distribution and re-installing all the plug-ins in the matching version for the new major Eclipse version.
However, this approach has some drawbacks:
time intensive
update inconsistencies (Update sites change location, update doesn't work because of some version inconsistency between plug-ins that requires a lot of manual fixing, etc) (this has gotten better with 3.5 but still bugs me)
no "global" update site, I manually have to manage several locations
I tried alternatives like Yoxos for configuration management but there plug-ins were missing and / or not that well tested together as I expected.
I took a look at Idea as an IDE, the one thing I really loved was the update management: centralized and 90% of the functionality I'd be using are provided as a core that is tested and updated as one.
Thus the question: How do you manage your Eclipse installations and deal with updates?
From my experience with other Eclipse users they have at least the same problem with updates, but I haven't heard of a solution yet.

I've heard good things from other developers about Google's Workspace Mechanic.
That's what they use inside Google to manage Eclipse environments across teams.
It was open sourced in May 2010, and you may find more information in the blog post.
Note that the Workspace Mechanic does not yet manage plug-in installations (see discussion thread): it remembers "plugin preferences", but installing the plug-in themselves is not yet supported.

I also met such inconvenience. I always need install similar development tools(such as Mylyn, SVN, CDT, Clearcase) in different eclipse instances on different hosts(Windows, Linux).
Update:
Eclipse has officially offered a feature to help migrating what you have installed since Eclipse Indigo.
And it also supports install existing plug-ins from another instance.

My strategy is as follows:
When a new Eclipse version comes out, I install it fresh and set up a fresh workspace. Then, I install all the minimal plugins I need manually, such as Subversion and M2Eclipse. Also, I export the preferences (e.g. code formatting) to an external file and reimport it in the new Eclipse installation.
I always import existing projects into the workspace. I can use my workspaces (or better, my SVN working copy) from multiple Eclipse versions if necessary.
I only occassionally install additional Eclipse plugins and try to move all other toolchain parts into the build environment (e.g. Hudson with several slaves, automated builds and release scripts, Sonar for code-quality reports etc.)
I try to minimize the complexity of the development setup on my local developer machine.

I only have one installations but I have multiple workspaces.
I synchronize the workspace setting by copying the content of <workspace_dir>/.metadata/.plugins/org.eclipse.core.runtime/.settings directory.
I also use the bookmarks to centralized to save the update-sites relevant for my work. This can act as a global update site. To import/export some bookmarks, go in Preferences -> Install/Update -> Available software sites. When a new Eclipse version comes out (once a year), I only have to install the plugins using the bookmarks.

Related

How can I automate installing eclipse with the same plugins and settings on multiple computers?

I want to find a way to quickly install eclipse with the same plugins and settings on several different Windows 7 computers. How could I go about doing this?
There are no easy solutions, but the process itself is clearly automateable. One solution would be the use of the p2 director application. You have to download a single director installation - one is available from the Buckminster download page, but from any Eclipse installation you can access this director application and use it to download all required software.
An alternative is the Oomph project, where you can define a model that describes what features do you want to install (among other things, such as default properties, source code to checkout), and it manages the download and installation automatically; and can also update the installation as well. One of my collegues like Oomph very much, but to tell the truth, my personal experience was that it was a bit raw (a few month ago).

Deleting every eclipse plugin in Galileo

My eclipse runs horribly slow because I have thousands of plugins installed on it. I spoke with another friend who uses eclipse but he has none. I feel like none of these are necessary and I didn't even install so many. I have thousands of plugins and I tried reinstaling eclipse but I need to find a way to remove every single eclipse plugin.
Attempting to delete a plugin manually takes up to 5 minutes per plugin, so it could take me months or years before actually deleting all of these by hand.
Is there a feature in eclipse to delete all the plugins? Also I'm using WINDOWS XP
First, you need to understand that virtually everything in Eclipse is a plugin. Eclipse has a very small core runtime (Equinox) that loads all features from plugins. You can't just "delete every plugin" as doing so would leave you with nothing.
Also, just because a plugin is installed does not mean that it is always loaded or taking up resources. Eclipse uses a "lazy loading" architecture that will only load a plugin when some feature that it provides is actually invoked. Some plugins are probably written poorly in such a way that they are loaded too aggressively, but that would be the rare exception. So, in general, having lots of plugins is not a problem for performance.
If you do have a plugin that you want to remove, you can not just delete it from the plugins folder - as you've seen that will screw up your Eclipse installation. Don't do that.
One way to manage the features that you have installed, including installing ones that are able to be uninstalled, is to open the About dialog, then click the Installation Details button. There you'll be presented with a list of features that have been installed; you can select a feature and if it's possible to uninstall it the Uninstall... button will be enabled.
Often it's one bad third-party plugin/feature (not something from eclipse.org) that causes an Eclipse installation to have problems; try to find what it might be by process of elimination (uninstall all third-party plugins that you might have installed since your Eclipse was fresh).
Finally, as a last resort, it is trivial to remove Eclipse completely (just delete it from your file system) and re-install it fresh.
Having said all that, performance problems are usually due to an underpowered machine. What kind of processort do you have? How much RAM does your system have available after Windows boots up? Have you specified memory settings in eclipse.ini?

Boostrapping new Eclipse machines with all the Plugins

Bootstrapping Eclipse on new machines is such a time consuming process, you wind up asking yourself whether you really need each plugin. But there all handy, and help develop consistent habits.
Eclipse bootstrapping problems include:
Explaining / documenting what needs to happen
The actual time pasting in the right URLs and downloading
Version compatibility and dependencies
Eclipse likes to restart after each one
The changeover to the Eclipse Marketplace means that some plugins and instructions you find on the web tend to be inconsistent, depending on when they were written.
The Licenses... over and over and over... yes, yes, yes... I understand that the person installing needs to be aware of it, and have a chance to review them, but there's got to be a better way.
It'd be nice to have "patch file" (either binary or meta) that spells out what I want to add on top of stock Eclipse installation. I'd really like to find (or create) a 1 or 2 step process that sets up Eclipse, plus a favorite batch of plugins:
subclipse
m2eclipse
jetty support like runjettyrun
android sdk and plugin (or at least just the plugin)
aspectj
Web Objects / WOLiops
python, other langs
JVM Monitor, maybe EclEmma
probably a git plugin pretty soon.
Does command line maven help with any of this? It seems like its repository management would fit at least part of the functionality.
On a machine with an Eclipse installation matching your needs use File -> Export -> Install -> Installed software items to file. Import the generated file using the same menu on all other machines.
As Scott says, a good approach is to simply package a fully prepared Eclipse installation once all the plugins you need are installed. The downside is that you have to update most plugins afterwards.
Another option is to use Yoxos. With it, you can create a profile and configure it with all the plugins you need (and apparently Yoxos can do more than that).
Finally, this page might interest you concerning the configuration side of things.
Solution 1 is too search for more advanced Eclipse distributions.
For example, STS (Spring Tool Suite) comes with
AspectJ
EGit
m2e
(and of course) Spring IDE
One small trick can be done with m2e-android - Android Configurator for M2E Maven Integration. If installing it on clean Eclipse, it will also automatically resolve to install :
m2e
Android Developer Tools (ADT)

choose a tool to create/maintain custom eclipse distrib

I would like to settle on a tool to create/maintain my custom eclipse distrib (starting with next 3.6). By studying previous questions main contenders seem:
Pulse
Yoxos
Google Workspace Mechanic: recently announced
doing it yourself in eclipse
Has anyone experiences in several of them and can comment on advantages etc?? My wishes are:
by 'distrib' I mean: plugins, settings & preferences...
be able to use the same eclipse setup in several workstations
MAYBE sharing with other members of the team
works across 3.5 and next 3.6: I don't know if it's possible. And anyway I would not object to customize the distrib once per new eclipse major release
Basically I was looking for the similar plugin or product. Pulse and Yoxos both supports plugin sync and workspace preference sync which is what i was mostly expecting.
Pulse
Pros
Pulse Explorer let you create new profile easily and share it
Eclipse installation folder is configurable and can be used as standalone installation for each profile
Cons
I felt sharing workspace preferences is complicated
Plugins repo search is slow
Replaced default update / install menus with Yoxos update
Very very buggy
Yoxos
Pros
I felt importing workspace preferences and save it to your online profile is easy
Search the plugins from public repositories is cool and very easy
Single eclipse installation is shared between all profiles
Cons
Yoxos Customizer is very complex (at least in my experience)
Custom added repositories are not
synced with server
Workspace Mechanic
Its very cool, more flexible plugin, but will sync only workspace preferences across eclipse installations
Personally I'm settled with Yoxos now.
Also refer
http://www.poweredbypulse.com/forums/showthread.php?t=29
Same plugins: I would just create update site with my plugins, or composite update site pointing to update sites with plugins you're interested in. Or you can simply use Eclipse Marketplace, which can create such update site for you from plugins you mark as favorite. Yoxos and Pulse should also work fine.
Same settings / preferences: Workspace Mechanic from Google may do the job for you. Beware: it is new project, which was just released into public. Disclaimer: I have no real experience with it :-) Pulse Team Edition should also be able to help (see previous disclaimer though).
I was in search for something like that myself (but more driven by the shared team approach), and I highly recommend the new Yoxos 5 Beta. It features synchronization of plugins and settings, while all your other suggestions only synchronize either plugins or settings, if I remember correctly.
In addition to your list, it might also be interesting to have your own mirrored update site, so its easier to control which version of which plugin can be installed at all (that also being more important in a corporate environment). See Eclipse help for details on how to create that mirrored site.
I think Sonatype Maven Studio leverages Maven to include Eclipse provisioning.

Multiple eclipses for different feature set or single eclipse contains all plug-ins?

Eclipse can contains a lot of different feature set via plugins.
Do you install all the plugins in one single eclipse? or do you install STS from spring, Flex eclipse from adobe, or even RCP development bundle from eclipse.org, every eclipse variant handle its task respectively?
Which way do you prefer and why? speedy response? avoid the hassle of updating/installing plugins?
Thanks
If you have enough power on your workstation (and the right eclipse.ini), you can:
install all the major plugins in one operation (choosing the most complete distro, like the J2EE one)
install any other external plugins in a shared directory (meaning those plugins will continue to be referenced by any new version of eclipse distro you may install in the future)
In eclipse I prefer to install them separately, because it seems to keep things running smoothly, no upgrading things as they come along, only as a whole thing, it makes for a lot of duplication though... With Netbeans (which I prefer) I generally install everything in one place and it too runs smoothly, even when I upgrade different plugins and add and remove other ones.
I separate groups of related plugins/features by defining separate install locations (You used to be able to do it through the IDE, can't find the right button at the moment, see here for some guidance on doing this manually). That way you can enable/disable groups if you need to.
The install locations can also be shared between different Eclipse installs (with care!), and if you completely trash or want to upgrade Eclipse, you can redefine the eternal locations on the new install, no downloads needed.