Intermediate stages are stored in a new intermediate folder, and only
files that should be published are copied into the publish folder.
Files are not deleted at the beginning of every build, and files that
have already been processed will not be reprocessed unless the source
has changed.
Versioned files are referenced by a SHA-1 hash of the content rather
than a build number. This means that changing your HTML and rebuilding
will not cause your users to redownload the same CSS and Javascript, and
a reverted change may cause users to use a copy that was previously
downloaded. It may be better to use only part of the hash so the HTTP
request is shorter.
Cleaning must be done manually to delete unreferenced files, or you will
eventually fill your publish folder with unreferenced files. AFAIK this
is a very hard problem to solve properly with Ant because there's no
file dependency tree available to show which files are not products of
the current build. It's doable by creating a map from source to publish
and excluding those files while deleting everything from publish, but it
may be better to just delete the publish directory?
console.log statements are no longer commented out. The regular
expression responsible did not work properly if there were parenthesis
inside the console.log, and it put comments into the scripts that had
just been minimized, so they weren't really minimal anymore.
Referencing http://www.ibmpressbooks.com/articles/article.aspx?p=519946
default.properties was added
as well as build.properties (now used for overiding values in default.properties). Using the new
buildinfo.properties file which is created dynamically to track the build number and build date.
Also added a few comments and spaces between tasks to make the file easier to read. Changed .gitignore
to ignore the buildinfo file not the build file.
Originally committed at ff3d10eaff