| ::compile = default | ::Compiles Java source code and creates .class files under the "build" directory. |
| ::dist | ::Packages the system for distribution/deployment to servers or end users. Specifically, it creates .war archive of compiled classes and configuration files. |
| ::install | ::Places executable code into location where it will actually be executed. Specifically, it copies .war file into Tomcat's webapps directory for use. You must then restart Tomcat or use the "reload" link in the Tomcat Manager. |
| ::javadoc | ::Generates Java API documentation under "build/docs/api/". |
| ::clean | ::Deletes files generated by previous build commands. Files under version control are not touched. |
| ::app.name | ::The name of this application. This should be one short word. Used in the name of resulting package files. Specifically, the .war file. And, it will be used to access the application via http://localhost:8080/APP.NAME/ |
| ::app.version | ::Version number of this release. Used in the name of resulting package files. Specifically, the .war file. |
| ::webapps.path | ::Path to the Tomcat "webapps" directory. Defaults to C:\Program Files\Apache Group\Tomcat 4.1\webapps\ |
::These build system properties can be modified by editing the
build.properties file.
### Source Code Organization and Build System Checklist
#### Separation of files by type: Are files separated by type?
::Yes. Except that application JSP and HTML files are in the same
directory, which is convenient because sometimes we change an HTML
file to be a JSP file.
#### Separation of version-controlled and non-version controlled files: To what extent has this been achieved?
::It has been achieved. Everything is under version control except for
the "build" directory. No step in the build process should create or
modify any file in any other directory.
#### Compatibility with standard build processes: To what extent has this been achieved?
::So far, so good. We can use build.xml files that are very close to
the examples that come with Ant. One difference is that we keep our
technical documentation under "www" rather than under "docs". Also,
we have avoided the use of custom ant tasks.
#### Platform independence: To what extent has this been achieved?
::We are using Ant, which is itself platform independent. The names
of the files and directories should work across platforms because
they do not rely on case-sensitive names. We assume that the utility
scripts in the "scripts" directory support all needed platforms and
we have not created directories for different versions of these files
aimed at specific platforms.
#### Have these implementation decisions been communicated to the development team and other stakeholders?
::Yes, everyone understands. Feedback is welcome.
::No, this is a risk that is noted in the [Risk Management](plan.html#risks) section.