Rationale

Having a common directory layout allows for users familiar with one Maven project to immediately feel at home in another Maven project. The advantages are analogous to adopting a site-wide look-and-feel. The directory structure used in the bexee is based on best-practices as suggested by Apache Jakarta committers.

The next two sections document the directory layout used by bexee and the directory layout created by Maven to make bexee more accessible for new developers entering the project.

Directory Layout

LICENSE.txt The license for the project. This file contains the license that applies to the project.
src/ Source code. The code is placed into separate source code directories by language and function, as in src/java/ and src/test/ for application source code and unit testing code.
src/confConfiguration files This directory contains most of the configuration files used by bexee.
src/javaJava source code This directory contains all of the application source code.
src/test Unit test source code. This directory contains all of the unit testing code.
src/webappWeb App source code This directory contains all of the web application source code except Java source code, which resides in src/java in package bexee.web. This includes HTML and JSP documents, images, style-sheets and the web application deployment descriptor.
xdocs/ Documentation files in XML format. Maven projects use Jelly/JSL to transform documentation files in XML into HTML. Project documentation is placed in this directory. Maven converts all XML files in this directory using JSL. Non-XML files (and directories) are copied without modificiation to permit the inclusion of "other" types of documentation (including images). The generated HTML files automatically inherit the Maven look-and-feel by default.
xdocs/navigation.xml Navigation links for site. Maven projects use Jelly stylesheets to transform documentation files in XML into HTML (XHTML for the most part). This file includes the navigation links that are added to each xdoc transformed in the xdocs directory.
project.properties A file defining project properties.

This file can is used to override Maven default properties for the core and properties for the various plugins.

The properties defined in this file should are applicable to all users of the project, as opposed to custom properties for a specific user which are defined in ${user.home}/build.properties .

build.properties A file defining project properties for a specific build.

This file is used to override Maven default properties for the core, plugins or any project default properties (defined in ${project.home}/project.properties ).

All the properties in this file are purposely commented out, when checked out from CVS. This file must not be modified and checked into CVS, because it defines properties that are specific to each user environment.

Users must copy the file into their ${user.home} directory and make the appropriate changes in there.

Maven-Generated Layout

target/ Contains compiled classes and JARs. The contents of the target/ directory should be enough to use the project. This directory contains the final JARs that are generated.
target/classes Contains compiled classes and JARs. The target/classes directory contains all compiled classes. This directory is used when packaging the final JAR for a project.
target/test-classes Contains compiled unit test classes. The target/test-classes directory contains all compiled unit test classes. This directory is used when executing the unit tests.
target/generated-docs Contains Maven generated xdocs. The target/generated-docs directory contains all of the Maven- generated xdocs. All content generated by Maven is first converted to xdoc format, so the same stylesheet used to transform the rest of the site, can be used on generated content. The contents of this directory are transformed and stored in the docs/ directory.
target/test-reports Contains the individual unit test results. The test-reports/ directory contains individual unit test reports in both XML and plain text formats. The reports in this directory is used when Maven creates the final unit test report.
target/docs Documentation files intended for the website publication. The docs/ directory contains only generated documentation that is intended to be published as the project's website. This directory includes the Velocity/DVSL generated HTML files, JavaDocs, cross- referenced sources, and various generated reports. Generally, all documentation is stored in the xdocs/ directory and then "transformed" into this directory. The specific documents that Maven generates are described below.
target/docs/index.html Starting point for browsing the documentation. The starting point for browsing the bexee project documentation.
target/docs/apidocs API documentation. JavaDocs for the projects. Placing the API documentation under docs/apidocs/ makes it slightly easier for other documentation files under docs/ to reference API documentation and vice versa.
target/docs/xref Cross-referenced source code. Cross-referenced source code that enables easy browsing of an entire source tree. Placing the cross-referenced sources under docs/xref/ makes it slightly easier for other documentation files under docs/ to reference cross-referenced sources and vice versa.
target/docs/xref-test Cross-referenced test source code. Cross-referenced test source code that enables an easy way to show developers how to use your software properly.
target/docs/team-list.html The list of project team members. A list of project team members based on the information provided in the project descriptor.
target/docs/dependencies.html The list of dependencies. A list of dependencies based on the information provided in the project descriptor.
target/docs/junit-report.html Unit test report. A report on the results of unit testing. This report provides a confidence level for users of bexee.