Disable Eclipse plugins per workspace

2019-03-19 01:04发布

问题:

I use Eclipse for different projects, each with its own workspace. They need quite a different set of plugins (SVN vs hg vs git, AppEngine vs Tomcat vs OSGi, and so on), and I have all those plugins installed and active all the time, which clutters the workspace quite a bit. I'd like to selectively disable plugins for each workspace.

回答1:

Eclipse (3.6/3.7) has a UI for disabling some plugins. It's under Window->Preferences->General->Startup and Shutdown->Plugins activated on startup. However not all plugins are listed here.

To disable other plugins:

It's possible to have separate configuration (osgi.configuration.area) directories: http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fruntime-options.html%23osgiconfigurationarea

Simply copy eclipse_dir/configuration to a new location. Make launchers for each of your workspace and add parameters to your workspace specific launcher, for example: -data workspace_location -configuration new_location_for_configuration_dir .

You can disable osgi bundles (not same as plugins) by removing it's line from configuration_directory/org.eclipse.equinox.simpleconfigurator/bundles.info file.

The config.ini file in the custom configuration directory must contain this line:

osgi.configuration.cascaded=false


回答2:

Another solution would be to define a perspective for each workspace, and customize that perspective.

In each one, you can deactivate menu and commands of plugin you do not want, even though those plugins remains loaded.
That help removing some of the "GUI cluttering" caused by the various plugin.

When you switch workspace, you will restore the perspective you were using with the new workspace.



回答3:

Eclipse has a notion of local and global configuration that might help you. When you start Eclipse with the -local {localDir} argument, Eclipse uses a writable local configuration in {localDir} and treats the (global) install configuration as read-only. Thus, you can install common features in the global configuration (when not using the -local flag), and install local features into the local configuration. In your case, to get per-workspace configurations, you can adopt the convention that the local configuration is inside or beside your workspace directory (though if inside, not managed as an eclipse resource or project), and then always launch pointing at that directory (e.g., eclipse -data {workspaceDir} -local {workspaceDir}/localConfig).



回答4:

I solved that problem by having two separate eclipse "installations". It isn't the most beautiful solution, but does the job.

Here it is suggested to use General -> Capabilities, but that doesn't seem to exist in 3.5