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?
- 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).
|SciJava||Common utilities, plugin infrastructure, scripting, the context|
|ImageJ||A general-purpose image processing application|
|ImgLib||Generic multi-dimensional data processing|
|SCIFIO||Extensible image file I/O|
|Fiji||A "batteries-included" distribution of ImageJ|
See the Architecture page for more information about the relationship between these projects.
What is the license?
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:
- Install Maven.
- Clone the source repository of interest.
mvnfrom the top-level directory.
Advanced instructions for building, or modifying, the source code are available for specific development environments:
Note that these tutorials are targeted towards ImageJ, but would apply to any Maven-based project.
You can browse the Javadocs online.
|Logo||Organization||Javadocs||Git repository||Jenkins job|
All SciJava projects use a build-javadoc profile to standardize configuration for the Maven Javadoc plugin. This allows the Jenkins jobs to aggregate javadoc for their project with its direct Maven dependencies.