Child pages
  • Eclipse development setup for CIShell and Sci2

Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


  1. In the Work with: field, paste the following URL:
    1. Note: The newest version of Subclipse, such as 1.10.x, do not currently work with plugins we will install later on
  2. Click on the Add... button to the right of that field

  3. Give a descriptive name to this new repository, such as Subclipse

  4. After fetching data from the repository, two top level results should appear. Check the boxes to the left of Subclipse and SVNKit then click Nextclick Next

  5. Click Next again, accept the terms of the license agreement, then click Finish

  6. Eclipse will now install Subclipse. It may ask to be restarted - go ahead and agree to that so that the installation can complete 


Subclipse Handler

  1. Go to File->Import... from the Eclipse toolbar
  2. Select Maven->Check out Maven Projects from SCM and then click Next
  3. Near the bottom of this window, where it says Find more SCM connectors in the m2e Marketplace, click the blue link
  4. In the window that opens, in the Find: field, type in subclipse. The first result should be m2e-subclipse - check the box next to that entry and click Finish
  5. After some processing, another window should pop up. The Maven SCM Handler should be checked, so you can just click Next here
  6. Click Next on the following screen, then accept the license agreement and click Finish
  7. A security warning might pop up, just click OK
  8. A dialog will prompt you to restart Eclipse - click Yes

For whatever reason, SVN and the SVN connector will not work until you make this change:

  1. After Eclipse has been restarted, go to Window->Preferences from the toolbar
  2. In the search field in the top left corner, type in SVN, then click on the SVN header
  3. In this options screen, under SVN interface, select SVNKit (Pure Java) for Client
  4. Click OK to exit Preferences and save changes


In order to build programs like CIShell, additional build steps are sometimes required outside of the usual Maven build process. For these tasks, you'll need to use Ant. In this case, you will need to install the Ant-Contrib library to your local version of Ant.

  1. Download and unzip the latest version of Ant-Contrib. Ant-Contrib has not been updated since 2006, so it's a pretty safe bet that this download will be the most recent release:
  2. After unzipping, you'll want to move the jar file (ex: ant-contrib-1.0b3.jar) to your ANT_INSTALLATION/lib/ directory. In my case, this was located at plugins/org.apache.ant_<version>/lib inside of my main Eclipse folder
  3. Next, you need to add the new jar to Ant's classpath. To do this, go to Window->Preferences->Ant->Runtime->Classpath in Eclipse. Select Ant Home Entries, then click Add External JARs. Now navigate to the ant-contrib jar we imported and select it. A warning might pop up, but just click Yes if that happens.
  4. Now click OK to save your preferences, and Ant-Contrib should be ready to go

Pulling Code and Building

Once your Eclipse is fully configured, you can begin the process of pulling source code from the relevant Git and SVN repositories. Keep in mind that this is only necessary if you intend to do advanced development work on the CIShell or Sci2 core, or wish to build the projects in your local Eclipse instance. Additionally, these steps may vary between internal CNS developers and the general public.


Pulling from the GitHub Repository

To pull and commit changes to the public GitHub repository, you will need a GitHub account. The specifics of SSH keys and configuring your GitHub are covered here, so we won't spend any time on that. If you want eventually commit changes and have them added to the main CIShell repository, you'll want to fork it and commit your changes there. Then you can submit a pull request to have your changes integrated to the production branch. For this walkthrough, I'll use my personal fork of CIShell, but the steps are generally the same for the main repository found here. Here's how to import the source into Eclipse using Maven:

  1. Go to File->Import... on the Eclipse toolbar
  2. Select Check out Maven Projects from SCM, then click Next
  3. For SCM URL, select git from the drop down menu, then paste your Git URL to the right of that
    1. Note: I used the https URL, instead of the ssh URL in this case, to avoid the hassle of setting up SSH keys. Either way should work
  4. Most developers prefer to append a name to all projects imported from a certain repo. You can do that using the Name template field, as shown. Then click Next
  5. Leave this screen as is and click Finish
  6. A Maven project import screen may now pop  pop up. Just leave everything selected, then under Advanced, you may have to reenter the same Name template you added on that previous step. Then click Next
  7. On this next screen with all the green checkmarkscheck marks, just click Finish
  8. For whatever reason, Eclipse prompted me to install Tycho Project Configurators next. Just click through the dialogs to install this. You may have to restart Eclipse afterwards
  9. At this point, Eclipse will pull in all the CIShell projects. Each project should now be managed by Maven and in sync with your Git repository, as shown by the symbols on each project
  10. The parent project is the top level CIShell project, which you can later use to build CIShell with

You now have everything you need to work on the CIShell core in your local development environment, or build CIShell completely.

Building with Maven and Ant

  1. Right click the parent CIShell project (named parent-cishell in my example), then click Run As->Maven build...
  2. In the window that pops up, type clean install into the Goals field. This will perform a Maven clean, followed by a Maven install command
  3. Click the Run button. Maven will then go through the CIShell build process, which may take some time
  4. After the Maven tasks have completed (you should see BUILD SUCCESS in the console if this is the case), we need to perform the Ant tasks
    1. In the parent project, go to deployment/org.cishell.reference.releng/postMavenTasks.xml, right click on it, and go to Run As->Ant Build
    2. You will probably see output of the Ant script in the Console, but it should eventually stop with a BUILD SUCCESSFUL message

Locating the Finished Build

  1. Inside of your Eclipse workspace directory, locate your parent CIShell directory, which in my case was named cishell-parent
  2. Inside of this folder, go to deployment/org.cishell.reference.releng/target/products-final
  3. In this folder, there should be several compressed folders, each for a different system type
    1. Locate the one for your particular system and extract it to a new directory
  4. Go inside of that new directory, right click on the CIShell application (cishell.exe), and create a new shortcut. Right click on the shortcut and go to Properties. At the end of the Target line, after a space, type "-clean -console". This will aid with adding new plugins and debugging.
  5. Launch the shortcut to run CIShell

Sci2, EPIC, and Other Plugins

Pulling from the NWB SVN Repository

To checkout and commit changes to the NWB SVN repo, you need to be a CNS developer with SSH access. If you only want to checkout the code, you can use the public access URL.

You can find out more about the various CNS source code repositories here. For this walkthrough, I'll use the private access SSH method, but the steps are generally the same for the public access SVN.

In this tutorial, I'm going to be pulling code for the Sci2 project from trunk. Trunk is considered the main body of development, or the most stable branch. Here are some example paths for trunk, depending on what you want to import. The beginning of the URL may be different based on how you're accessing the repo, hence the ellipses:

  • Sci2: svn+ssh://
  • EPIC: svn+ssh://
  • Plugins: svn+ssh://
  • CNS (database connectors, etc): svn+ssh://
If you want to browse some of the other directories available, I recommend exploring the root nwb directory with Eclipse SVN Repository Exploring or a tool like TortoiseSVN. For now, I will demonstrate how to import the Sci2 project using Maven:
  1. Go to File->Import... on the Eclipse toolbar
  2. Select Check out Maven Projects from SCM, then click Next
  3. For SCM URL, select svn from the drop down menu, then paste your SVN URL to the right of that
  4. Most developers prefer to append a name to all projects imported from a certain repo. You can do that using the Name template field, as shown. Then click Next
  5. Leave this screen as is and click Finish
  6. Maven will now pull all the code from the SVN repo and import it. This may take some time. In this case, the parent project was designated as parent-sci2 in my repository
  7. After I pulled the After trunk/sci2 project directory, I then had to also pull the  is imported, you will also have to import the trunk/plugins and trunk/cns project directories from SVN to fix reference/dependency errors. This is necessary if you want to build Sci2
    1. Importing these two directories can be done using the exact same process. The only difference is to replace the sci2 directory name at the end of the URL with something different