Relatively complicated structure of the ant build file, which besides basic functionals like compile or test give us possibility to add to the manifest.mf hash-codes of all the files inside the jar (using SHA-1 and MD5 algorithms) and to run our java application in the different environments (using different compilers, args for jvm, different sdk, etc.).