Directories

Antmod uses a couple of default directories, in which it does its work. This is very intuitive by default, and can be quickly grasped when reading this section. It can also be tweaked in every way you want, which this section shows clearly by identifying the various Antmod configuration parameters related to directories.

Antmod directories

Directory Description
${user.home}/projects/
antmod.checkoutdir
The directory under which Antmod checks out things from CVS or Subversion.
A release descriptor called "mysystem-1.1.0" would be checked out to ${antmod.checkoutdir}/mysystem-1.1.
${antmod.checkoutdir}/antmod-releases
antmod.descriptor.xml.localdir
This is where Antmod checks out the XML release descriptor files.
During every "antmod checkout" or "ant update", Antmod will do this automatically. These files are retrieved from the "releases" module in SCM, as configured in the antmod.descriptor.xml.repos.url configuration parameter.
${antmod.checkoutdir}/antmod-javalib
antmod.javalib.localdir
This only applies if the antmod.javalib.url configuration parameter is an "scm:" url. If so, this directory is used by Antmod to 'cache' all java libraries.
Antmod transparently does this CVS or Subversion checkout into this directory, and then copies the needed java libraries into the releases depending on the javalibs required by the XML release descriptor. NOTE: usually it is a better idea to use an "http:" url for antmod.javalib.url, improving performance and removing the need for static binaries to be in SCM.
${antmod.checkoutdir}/antmod-conf
antmod.conf.localdir
The directory where Antmod checks out optional centralized Antmod configuration.
If "antmod.conf.enabled=true" in the local ".antmodrc" file, Antmod attempts this every hour, and will silently ignore the absence of centralized Antmod configuration. If present, it will override default configuration, minimizing the amount of settings each individual developer has to make in ".antmodrc". Centralized config is retrieved from the "antmod-conf" module in CVS or Subversion, as configured in the antmod.conf.repos.url configuration parameter.
${user.home}/.antmod
antmod.local.dir
Directory where Antmod stores information local to the build environment, and not directly needed by Antmod users.
Files stored here are log files (Velocity logfile of the XDoc plugin) and timestamp files (such as the every-5-minute check for the "antmod-conf" module).

Release directories

Each release is checked out under the ${antmod.checkoutdir} directory. Relative to each ${antmod.checkoutdir}/somerelease-x.x.x the following directories are configured.

Directory Description
javalib
antmod.release.dirs.javalib
Here the javalib files are placed that the XML release descriptor refers to.
build/dist
antmod.release.dirs.dist
Default output directory of "ant dist" on release level. Should contain all files and directories needed to run the application, not archived.
build/package
antmod.release.dirs.package
Default output directory of "ant package" on release level. Should contain the ZIP or tarball files containing the file from the dist directory needed for releasing to another machine or environment. Advise: try to keep it simple and have "ant package" package the whole dist directory as-is.

Module directories

Each module is checked out under the release directory. Relative to each somerelease-x.x.x/somemodule module directory, the following directories are configured.

Directory Description
src
antmod.module.dirs.src
Top level directory for source files.
src/java
antmod.module.dirs.src.java
Java source file directory.
src/jsp
antmod.module.dirs.src.jsp
JSP files (excluding descriptors!)
src/meta-inf
antmod.module.dirs.src.meta-inf
Files for inclusion in META-INF/ of module's JAR file
src/webapp/web-inf
antmod.module.dirs.src.webapp.web-inf
Only useful when module has type main within a release. Contains files such as web.xml for inclusion in WEB-INF/ of a web application. Should never contain javalibs, as those come from the release's javalibs!
src/webapp/meta-inf
antmod.module.dirs.src.webapp.meta-inf
Only useful when module has type main within a release. Files for inclusion in META-INF/ of a WAR file.
resources
antmod.module.dirs.resources
Top-level directory for resource subdirectories that are not source files.
resources/conf
antmod.module.dirs.resources.conf
Any configuration file that is needed by the application, usually in the classpath of the distributed application. In case of a WAR file, these files are usually placed in the WEB-INF/classes directory of the WAR. In other cases, "ant dist" on release level may put them somehwere else in the distribution.