Source code

Revision as of 11:31, 18 August 2017 by Rueden (talk | contribs) (Javadocs: Use JavadocSection template)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Development
Topics
Overview
Philosophy
Architecture
Source code
Project management
Coding style
Debugging
Tools
GitHub
Git
Maven
IDEs
Travis
AppVeyor
Dotfiles
Guides
Writing plugins
ImageJ Ops
Contributing to a plugin
Distributing your plugins
Development lifecycle
Building a POM
Developing with Eclipse
Hands-on debugging
Adding new ops
Adding new formats
Using native libraries
Tips for developers
Tips for C++ developers
ImageJ 1.x plugins
Versioning
Logging
Uber-JARs

The source code of ImageJ is very modular; i.e., it is organized into well-separated projects. This separation offers many advantages for efficient software development and it is well worth investing a little bit of time to understand.

Where is the code?

Tip: You can search the source code at http://search.imagej.net/ using the GitHub button!
  • All source code is on GitHub.
  • Each project exists in its own GitHub organization.
  • Each organization contains multiple source code repositories.
  • Each repository corresponds to one Java library (.jar file).
Logo Organization Purpose
Scijava-icon.png SciJava Common utilities, plugin infrastructure, scripting, the context
Imagej2-icon.png ImageJ A general-purpose image processing application
Imglib2-icon.png ImgLib Generic multi-dimensional data processing
Scifio-icon.png SCIFIO Extensible image file I/O
Fiji-icon.png Fiji A "batteries-included" distribution of ImageJ

See the Architecture page for more information about the relationship between these projects.

What is the license?

Most is BSD-2 (permissive); some is GPL (copyleft). See the Licensing page.

Building from source

Virtually all of these repositories have a top-level pom.xml file, identifying them as Maven projects.

To build a Maven project:

  1. Install Maven.
  2. Clone the source repository of interest.
  3. Type mvn from the top-level directory.

Advanced instructions for building, or modifying, the source code are available for specific development environments:

Eclipse-luna.png Netbeans.png Intellij-idea.png Command-line.png

Note that these tutorials are targeted towards ImageJ, but would apply to any Maven-based project.

Javadocs

Javadoc for all ImageJ-related projects can be found online:

http://javadoc.scijava.org/


You can also search the javadocs at http://search.imagej.net/ using the Javadoc button.

Running ImageJ1 unit tests

We have written a substantial number of unit tests to exercise ImageJ 1.x functionality. See the Unit tests for ImageJ1 page for more information.