Source Code

The GeoTools source code is organized into the following structure:


Java projects that help with our build process


documentation and website source in rich structured text


the core library allowing your application to be spatial


extensions built on top of the library that do useful things


OGC schemas and data structures


plugins that work with the core library to support additional formats


community code that is not ready yet, but you may find interesting


scratch space for ideas and experiments and collaboration

Download Source Code

Source code is published with each release and is available on the downloads page:

Source code encoding is UTF-8.

Git Checkout of Source Code

GeoTools makes use of the Git revision control system (as mentioned in downloads above). It is an advanced version management tool with a different workflow than Subversion or CVS.

You do not need any special permission to have read-only access to the source code which is located on github. You are encouraged to clone the repository or fork it into your own account and issue pull requests.

Please just check out the code and have fun. If you are interested in getting commit permission later you can look into Developers Guide Roles and Responsibilities.

  1. Our Git Install page contains detailed instructions for setting up git on different platforms.

  2. Navigate to where you want the checkout with the command line:

  3. Checkout GeoTools using git (a new directory geotools will be created):

    C:\java> git clone git://

#. This will create a file:geotools directory that contains the source code for this project


  • You can switch between the main and stable branches easily:

    C:\java\geotools> git checkout main
    C:\java\geotools> git checkout 11.x
    C:\java\geotools> git checkout 8.x
  • Take the time to read the git book before diving into git:

    Also an excellent introduction to git:

  • Although links to various IDE interfaces will be made available, no GUI will substitute for an understanding of the underlying git versioning model, and how the system is actually doing work.