I've submitted an ant build system based on the old build scripts we had
prior to the switch to maven. I've attached the output of "ant
-projecthelp" and "ant help". Hopefully this output should be sufficient
to begin developing under the new build system. The scripts have only
been tested on fedora 8 and fc6 so there may still be a few tweaks
required here and there for other platforms.
The ant build system uses all the same paths as the maven one, so for
the transition period they can be used side by side.
Known issues still on my todo list:
- need to generate pom files
- release docs:
The release docs appear in SVN under resources and under
distribution/src/main/resources. I wasn't sure which ones to include as
these appear to be similar files, but not exactly the same, so the
current release artifacts don't include any.
- perftests:
The launcher for these tests needs to be disentangled from maven
somehow.
- eclipse plugin distro:
The maven assembly stuff generated separate releases for the
eclipse plugin on windows and unix. The ant system currently just
bundles everything together into one big release archive.
Please let me know of any further issues that should be addressed. I
expect we should have a complete replacement for maven soon, and I'd
like to remove the pom files once we've reached that point.
--Rafael
# ant -projecthelp
Buildfile: build.xml
Main targets:
build build the project
bzip2 build release archive
clean remove build and release artifacts
common.help display detailed build documentation
common.report generate test report
compile compile sources
compile-tests compile unit tests
doc generate api-doc
gzip build release archive
help display detailed build documentation
jar create module jars
jar-tests create unit test jars
libs copy dependencies into build tree
release build all release archives
report generate test report
tar build release archive
test execute tests
zip build release archive
# ant help
Default target: build
Buildfile: build.xml
help:
[echo]
[echo] ant build
[echo]
[echo] This target compiles all sources, creates java archives, and
[echo] copies scripts and configurations into the build directory:
[echo]
[echo] /home/boston/rafaels/qpid/trunk/qpid/java/build
[echo]
[echo] The build directory is treated as a live distro which this
target
[echo] will incrementally update. Developers can put the build/bin
[echo] directory into their path in order to run any scripts or code
[echo] directly out of the live build:
[echo]
[echo] /home/boston/rafaels/qpid/trunk/qpid/java/build/bin
[echo]
[echo] ant test [ -Dtest=<pattern> ] [ report ]
[echo]
[echo] Execute unit tests and place the output in the build results
[echo] directory:
[echo]
[echo] /home/boston/rafaels/qpid/trunk/qpid/java/build/results
[echo]
[echo] All test output will be redirected to a file of the form:
[echo]
[echo] TEST-<class>.txt
[echo]
[echo] The same output is available using an xml file format:
[echo]
[echo] TEST-<class>.xml
[echo]
[echo] The test system property may be used to restrict the number of
[echo] tests run by a given invocation of the ant test target. The
[echo] following command will run just the MongooseTest test case:
[echo]
[echo] ant test -Dtest=MongooseTest
[echo]
[echo] In addition, patterns may be used to specify more than one test.
[echo] The following command will run both the MongooseTest and
GooseTest
[echo] test cases:
[echo]
[echo] ant test -Dtest=*ooseTest
[echo]
[echo] If no test property is specified, the "ant test" target will
[echo] default to running all available tests for the project or module
[echo] depending on the current working directory.
[echo]
[echo] Finally it can be useful to append the report target in order to
[echo] generate an html summary of the tests that were just run. The
[echo] following command will run both the MongooseTest and GooseTest
[echo] test cases and generate an html summary of the results:
[echo]
[echo] ant test -Dtest=*ooseTest report
[echo]
[echo] See the documentation for the "ant report" target for more
details
[echo] on the generated report.
[echo]
[echo] ant report
[echo]
[echo] The report target will generate an html summary of the current
[echo] test results into the report directory:
[echo]
[echo] /home/boston/rafaels/qpid/trunk/qpid/java/build/report
[echo]
[echo] The report target will operate on all results currently in the
[echo] build results directory. Results are not cleared unless the
clean
[echo] target is used. This means that several consecutive test runs
can
[echo] be summarized into a single report. The following commands will
[echo] produce a report summarizing both the MongooseTest and GooseTest
[echo] test cases:
[echo]
[echo] ant test -Dtest=MongooseTest
[echo] ...
[echo] ant test -Dtest=GooseTest
[echo] ...
[echo] ant report
[echo]
[echo] ant release
[echo]
[echo] The release target generates binary distribution archives and
[echo] places them into the release directory:
[echo]
[echo] /home/boston/rafaels/qpid/trunk/qpid/java/release
[echo]
[echo] ant clean
[echo]
[echo] The clean target removes build artifacts. When invoked from the
[echo] project root this target will remove the entire project build
and
[echo] release directories:
[echo]
[echo] /home/boston/rafaels/qpid/trunk/qpid/java/build
[echo] and
[echo] /home/boston/rafaels/qpid/trunk/qpid/java/release
[echo]
[echo] When invoked from a specific module, the clean target will
delete
[echo] that modules build root from underneath the project build root:
[echo]
[echo] /home/boston/rafaels/qpid/trunk/qpid/java/build/<module>
[echo]
BUILD SUCCESSFUL
Total time: 0 seconds