The build.xml file defines the project build process to Ant. It defines many targets (currently more than 20), including their dependencies on other targets. It also defines the tools and resources needed to build each specific target.

When the build.xml file is correct (not an easy objective to achieve with a complex project such as SIP Communicator), you should only need to know about a subset of the available targets. When you execute Ant without naming any target, it will use the default target which is defined at the top of the build.xml file. Currently, the default target is ant-usage, which prints a short list of the more useful build commands.

Here is how to run Ant against a particular target:

 ant <targetname>

Here is a list of the more useful targets for the SIP Communicator project:

  • -projecthelp is a special Ant target that produces a list of all available external build targets. (The project also has many internal targets that would not be useful if run from the command line. They are used as dependencies of the external targets.)
  • rebuild is the most useful target. It deletes all the output files and directories (using the clean target) and then builds the project from the current source files in your CVS Sandbox. It compiles all source files and creates a new collection of jar files (called bundles in OSGI terminology), but it does not run any unit tests.
  • test runs an incremental build and then executes all available unit tests against the latest SIP Communicator bundles. If any tests have changed, they will be recompiled. If any of the SIP Communicator source files have changed, the jar will be rebuilt first.
  • cc-buildloop is an internal target that completely recreates and tests the sip-communicator. It is used by CruiseControl to maintain the project. It can be used from a command prompt, but you are advised to use this command instead….
 ant rebuild test

Author: Brian Burch