Page tree
Skip to end of metadata
Go to start of metadata

Table of Contents

Step 1: Build Your Folder Structure

Clone copies of https://stash.ihmc.us/projects/ROB/repos/repository-group/browse to put repositories in in order to make a repository group that can all be worked on at once. Some people prefer to work with a single repository group. Some work with several. If you wish to work with several groups, then rename each directory to be the name of your repository group. For example, 'scs-repository-group'. See https://stash.ihmc.us/projects/LIBS/repos/repository-group/browse/README.md for more information. You should use a group for any set of repositories that will depend on each other. The group will set things up nicely for your IDE by having a build.gradle in the highest level directory that finds the individual projects in the sub directories. See https://github.com/ihmcrobotics/ihmc-build/blob/master/README.md for more information on the IHMC build system. 

Clone repositories you would like to work on from Bitbucket Server (Read/write repositories for internal IHMC folks and close collaborators) and Github (read only copies for outside users). Make sure to clone them in the subdirectory immediately under your repository group directory. For a default list of repositories to use as an internal IHMC developer or close collaborator, see Default Repository Clone List.

Please keep your code separate from your IDE and workspaces. Keep repositories in groups as you like to work on them together.

There are two kinds of repositories, those that are a single project and those that are a group of projects. You can mix them together.


Step 2: Gradle Installation

Download and install the latest version of Gradle at https://gradle.org/install/

It is recommended to install Gradle in a convenient path close to root. (ex. /opt/gradle-4.1 on Linux)

IntelliJ must point to your local Gradle installation. See image below.

Eclipse Buildship maintains it's own Gradle distributions for portability. However, it is still recommended to install Gradle locally and add it to your path. Sometimes it is useful for submitting logs to IHMC folks for help for support and to run command line tasks.

Please make sure Eclipse Buildship is up to date if you are using Eclipse. See below or at Installing plugins in Eclipse for more info.

Download and Install a Gradle Distribution

Create a gradle.properties file in your User Folder

This gradle.properties file is separate from the gradle.properties file above and the gradle.properties in each repo. It goes in the .gradle folder in your user folder.

  • Windows: C:\users\[user_name]\.gradle\gradle.properties, or some other drive than C
  • Mac or Linux: /home/[user_name]/.gradle/gradle.properties

Copy the following into the gradle.properties file, and fill in your crowd credentials. This is the same credentials used to log into stash and usually the username is {first letter first name}{last name}, e.g. jpratt.

org.gradle.workers.max=200
artifactoryUsername=your-crowd-username
artifactoryPassword=your-crowd-password


IntelliJ

Install Eclipse Buildship

See below for how to install Eclipse Buildship. Use the URL http://download.eclipse.org/buildship/updates/e47/releases/2.x (Eclipse Oxygen)

Replace 'e47' with 'e46' if you are still on Eclipse Neon.

Configure Eclipse Buildship

You may use your local installation of Gradle, but using the packaged, "Specific Gradle version" is recommended as your Eclipse configuration files are portable and it's easy to switch around to different versions of Gradle.

Windows Command Line

Holding Shift+Right Click in any file explorer will present the Open PowerShell window here context menu. You can use it to run manual Gradle tasks.

Command line is useful for gathering error messages when things are not working in your IDE.

Step 3: Importing Projects into your IDE

Select a project you would like to work on, or if your prefer, an entire repository as in the example. You may import anything with a build.gradle.

Additionally, repeat the steps below to add more projects/repositories to your build. In IntelliJ, click the '+' to add projects.

When dependencies change or projects get moved around, you may need to refresh your Gradle build. Eclipse it's a right-click "Refresh Gradle Project". In IntelliJ, click the refresh icon circled below.

Eclipse

IntelliJ


  • No labels

10 Comments

  1. It's a pretty good initial draft (smile)
    I'd say that the snapshots in the section 'Step 2' are pretty messy and it's tricky to figure out what's up, what's the ordering, what IDE it is for.

    1. Yeah I'll make some subsections there! (Done)

  2. Note: you have to upgrade buildship to the newest version as in the instructions. The version that ships with eclipse does not support our build system yet.

  3. https://stackoverflow.com/questions/17748223/egit-and-eclipse-modifies-gitignore-file-but-it-should-not

    By default, EGit automatically adds resources marked as "Derived" to .gitignore. A typical example is the bin folder in a Java project containing the compiled classes.

    You can disable this by going to Window > Preferences > Team > Git > Projects and deselect "Automatically ignore derived resources by adding them to .gitignore".

  4. Quickstart should have more details on everything you need to do to get up and running if you know close to zero.

    Pick something to get completely set up and show how to do it. For example, what do I need to do to get to the point where I can be running Atlas obstacle course simulation. 

  5. Path length limitation is not Windows, but Windows version of SmartGit using a 32-bit version of Git that uses old msys binaries.

    1. Well it's also a problem on some versions of Windows 7 and older.

  6. I'm using IntelliJ. I wanted to have a separate project for Exoskeletons. I initially cloned  ihmc-exoskeletons at the same level as RobotControl (see my directory structure). When I did a gradle refresh, IntelliJ went and found the source code of ihmc-open-robotics-software, which I did not want. The solution was to clone ihmc-exoskeletons into a directory called Exo that is at the same level as RobotControl.


    1. Yes. That is the expected behavior. So you can set the workspaceDirectoryLevel=0 and import exo and it will work. Not sure if it's a bug, but if you set includeBuildsFromWorkspace=false and import a project group, it won't include any of its projects.

      1. When I did it the first way, and it did find all of the repos, but I still had some compile errors. Instead of trying to fix the errors, Nathan suggested moving the Exo directory down one level in my file system.