Module Directory Structure¶
GeoTools 2.4 and above complies to the Maven standard layout regarding nested modules; and the layout of source code directories.
This section provides a summary of module structure and a examples how we have groupled modules into library, plugin, extension, docs or unsupported.
Module Structure¶
Module is structured:
modules/category/module/pom.xml
Provides metadata about the module for maven
modules/category/module/src/site
Files for Maven to automatically generate the site
modules/category/module/src/site/site.xml
Layout file for the site, required to add a menu entry for the review information
modules/category/module/src/site/apt/review.apt
Almost Plain Text file for copyright and licensing info
modules/category/module/src/main/java
Module Java source files, andy an “doc-files” used for javadoc attachments such as images.
modules/category/module/src/main/resources
Resources to be included in the JAR file
modules/category/module/src/test/java
JUnit tests source files
modules/category/module/src/test/resources
Resources required for tests only, often these are placed in a “test-data” folder to prevent confusion with normal java packages.
modules/category/module/target
Automatically created for Maven output (details below)
Module Targets:
modules/category/module/target/classes
Generated class files, results of last ‘maven compile’
modules/category/module/target/site
Files for the automatic website, from ‘maven site:site’
modules/category/module/target/site/apidocs
Generated javadocs, from last ‘maven javadoc:javadoc’
modules/category/module/target/surefire-reports
Logs from junit, from last ‘maven test’
modules/category/module/target/test-classes
Generated junit classfiles, from last ‘maven test’
modules/category/module/target/module-2.4-SNAPSHOT.jar
Generated jar file, from last ‘maven install’
Module Categories¶
The modules are are organised according to their role (some examples are shown below):
modules/library/ - this is the core library
opengis - interfaces for standard GIS concepts
api - stable interfaces
referencing - default implementations of opengis interfaces
coverage - enables raster support
main default implementations
jdbc - enables database support
render - implementation of SLD based rendering system
cql - implementation of plain text filter
xml - support for xml
ogc/ - used to store OGC schemas and associated xml (and target data structures if needed)
modules/plugin/ - modules that dynamically integrate to the GeoTools library at runtime
jdbc-postgis - plugin allowing jdbc to work with postgis database
epsg-hsql - plugin allowing referencing to work with epsg codes
shapefile - plugin providing shapefile support
modules/extension/ - extensions and extras built using the library
app-schmea - support the mapping of content to an applicaiton schema
brewer - generate styles from for a feature collection
xsd - bindings for xml parsing / encoding
modules/unsupported/ - modules that are not ready yet, or are orphaned and no longer have a contact person
process - framework for spatial processes
swing
swt
wps - client for web processing service
doc/ - example code used as part of documentation and tutoirals