Eclipse Bulk Import

About

At my place of work, we have lots of eclipse projects. The base platform is composed of over 200 eclipse projects. Now, I’m not really sure if anyone ever uses eclipse with over 200 projects. There are some issues with such an eclipse setup:

  1. Eclipse workspaces get corrupt every now and then: new workspace, import projects, wait. This cycle can take appox an hour and still lead to corrupt workspace. (once I spent an entire day doing this!)
  2. Importing these projects takes time because you have to select a bunch of projects
  3. Importing over 200 projects and then build takes eclipse appox 30-40 mins depending on the hardware
  4. A functioning eclipse with over 200 projects is needed before one can do anything productive

And so after looking for such a plugin that would allow me to import a predefined list or projects, and not finding one, I decided to write one myself.

Features

  • saves the list of projects in the current workspace
  • is able to bulk-import this list of projects in another or the same workspace
  • can help to recover from corrupt workspaces

Screen Shots

Here is an example to the plugin in action. In this video i remove some projects from my workspace. The plugin has already saved the list of current projects. So with one click, I can re-import them:

Download

Download here!.

Source is at github.

Installation

Place the BulkImportPlugin_1.0.0.jar in your $eclipse_dir/plugins/ directory. Restart Eclipse.

Usage

Once installed, you will have 2 buttons on the eclipse gui to:

  1. Save the current list of projects
  2. import projects from a saved list of projects

In Window -> Preferences -> Bulk Import you have some options as to where to save the project List and when it should be saved
Bulk Import Preferences

And thats about it. When configured to save on shutdown, each time you quit eclipse, it will save the current list of projects in your workspace. Apart from that there are 2 buttons in eclispe to save or load projects on demand

Eclipse

Save location of current open projects
Open projects from saved-project-location list.

Recovering From Corrupt Workspaces

With a corrupt workspace I notice that the only thing that helps is to create a new workspaces and import all the projects into that. And so I assumed that a corrupt workspace seems to have to do with the current projects you have in you workspace and eclipse not being able to work with them. Googleing around, i found that in case of corrupt workspaces you can delete the following directory:

/path/to/my/workspaces/.metadata/.plugins/org.eclipse.core.resources/

and then re-import the projects. Using this plugin you can delete this directory, restart eclipse and one-click import your previous projects.

15 Comments (and 2 trackbacks)

  • #1 by Andre on July 22nd, 2009

    Quote

    Hi,

    this plugin is exactly what i’m searching for. Thank You for sharing it!

    I have one question: is it possible to import projects without opening? I have big CDT-projects and it tooks very long, to import the list, because each project needs about 1 minute to open.

    Andre

  • #2 by Aaron Digulla on July 23rd, 2009

    Quote

    If you click on an existing workspace in the “Import Project” wizard, you can already import all projects at once (and even deselect those you don’t want to import).

    If your projects are checked into a VCS, you can use Export and Team Project Set to achieve the same effect.

    Or am I missing something?

  • #3 by Saqib on July 24th, 2009

    Quote

    Hi Andre,

    Perhaps I can add a feature to display a list box with all the projects that should be opened. Their you could select what projects to open.

    Regards,

    Saqib

  • #4 by Saqib on July 24th, 2009

    Quote

    Yes I could select from a list, but in my case the list would contain over 700 entries. We have mostly inter-project dependencies (and not binaray/jar dependencies). Clicking through such a list is a pain. If i go through the pain of clicking thought these 700 projects to get the 200 that I need, I would like this list to be saved so I don’t have to do it again.

    Also I could save/import a Team Project, but importing that would do an SVN checkout again. Why checkout when I already have it.

    Aaron Digulla :

    If you click on an existing workspace in the “Import Project” wizard, you can already import all projects at once (and even deselect those you don’t want to import).
    If your projects are checked into a VCS, you can use Export and Team Project Set to achieve the same effect.
    Or am I missing something?

  • #5 by Tarun on August 19th, 2009

    Quote

    Really nice idea… Thanks for sharing it…
    This plug-in is working fine on a fresh eclipse download..

    But I already have an eclipse setup with many other plugins
    when i try to include BulkImport into my existing eclipse setup, It does not show up in the preferences dialog.

    I’m Using ‘Eclipse Galileo for RCP/Plug-in Developers Edition’ and then added Subclipse, EMF, GEF, GMF, and BIRT.

  • #6 by anaiappan on September 11th, 2009

    Quote

    hi, is it possible to call your program from comment line?

  • #7 by srasul on September 16th, 2009

    Quote

    Thanks for the feedback. Strange that it does not work for an eclipse loaded with plugins. I am using it with: subclipe, eclispe AJDT, and eclipse maven integration plugins and its working for me.

    Perhaps you can check in eclispe: Window -> Show view -> Error Log

    Or also check your_eclipse_workspace/.metadata/.log

    Tarun :

    Really nice idea… Thanks for sharing it…
    This plug-in is working fine on a fresh eclipse download..

    But I already have an eclipse setup with many other plugins
    when i try to include BulkImport into my existing eclipse setup, It does not show up in the preferences dialog.

    I’m Using ‘Eclipse Galileo for RCP/Plug-in Developers Edition’ and then added Subclipse, EMF, GEF, GMF, and BIRT.

  • #8 by Jens Støvhase on November 2nd, 2010

    Quote

    Hi
    I’m trying to get the plugin to work by placing the jar file in ~/.eclipse/org.eclipse.platform_3.5.0_155965261/plugins/ (Linux) but Eclipse does not find the plugin.

    What am I doing wrong ?

    Thanks
    Jens

  • #9 by srasul on November 2nd, 2010

    Quote

    Type your comment here

    Jens Støvhase :

    Hi
    I’m trying to get the plugin to work by placing the jar file in ~/.eclipse/org.eclipse.platform_3.5.0_155965261/plugins/ (Linux) but Eclipse does not find the plugin.

    What am I doing wrong ?

    Thanks
    Jens

    your supposed to put in your eclipse installation’s plugin directory. you are putting the jar in the wrong location.

  • #10 by Zhenlei Cai on December 11th, 2010

    Quote

    Extremely useful to me Thanks!

  • #11 by ea on December 30th, 2010

    Quote

    turns out extremely useful on my legacy c++ project with lots of maybe unusally nested subdirectories like

    projecta
    \ tests
    helpera
    \ tests

    when eclipse stops its own import at projecta and misses the other three. So I can create the list semi-automatically and then import at once on each machine.

  • #12 by Julie G on June 24th, 2011

    Quote

    This is just awesome! Thank you so much. I love the screen shots…. well lets just say, I need the screen shots. :)

  • #13 by Zhenlei Cai on June 17th, 2012

    Quote

    BTW My multi-module Java build tool written in Python, Lattice, works with your Bulk Import Plugin for Eclipse support:

    https://github.com/hackingspirit/lattice

    Each module is turned into a Java project.

  • #14 by dhal1a on October 23rd, 2012

    Quote

    Nice tool, thank you.

    If you are using maven, you could also have a dummy project with one pom that simply lists the projects in your workspace. Then at import time, just import that dummy project and it will bring in all the rest.

    Also, in case you didn’t save your list before you lost the workspace… you can manually create this pom outside of your workspace.

  • #15 by Rich Kuzsma on October 29th, 2012

    Quote

    Just wanted to say “Thank you” for providing a very helpful plug-in. Exactly what I was looking for.