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

Reply via email to