Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Before we begin discussing programming patterns, we need to have a look at the directory structure. An elegant directory structure will simplify the build process and make it easy to find any part of the application's source (be it Java code, script, or JSP file) and to exclude the output of the compilers or code generators from source control.
The project's directory structure should also make it easy to split the project in to modules. Large Java EE applications mostly need to be split across several modules, which are usually packaged in separate JAR files.