Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

What is collective.recipe.ant ?

Collective.recipie.ant executes an ant build. It assumes java, and and ant is installed on the system.

Supported options:

ant

Specify the location of the ant application. This option is optional. If not used the application is looked up in the default path.

ant-home

If ant is not located in your default PATH -environment variable you can specify the location here.

ant-options

Specify the options ant should be called with. You may change the buildfile with the -buildfile option for example.

classpath

Give some extra location for including java libraries. I.e. junit, …

You can debug the ant output by increasing the verbosity of buildout.

Simple example

>>> import os.path

In the simplest form we can download a simple package and have it extracted in the parts directory.

>>> write(sample_buildout, 'buildout.cfg',
... """
... [buildout]
... parts = javaproject
...
... [javaproject]
... recipe = collective.recipe.ant
...
... """)

Ok, let’s run the buildout:

>>> print system(buildout)
Installing javaproject.
Build failed
While:
  Installing javaproject.
Error: System error: Buildfile: build.xml does not exist!
<BLANKLINE>
<BLANKLINE>

This one failed. We didn’t specify any options. Let’s do that.

>>> from os.path import join, dirname
>>> buildfile = join(dirname(__file__), 'testdata', 'echo.xml')
>>> write(sample_buildout, 'buildout.cfg',
... """
... [buildout]
... parts = javaproject
...
... [javaproject]
... recipe = collective.recipe.ant
... ant-options =
...     echo
...     -buildfile %s
...
... """ % buildfile)

Fetch the output of the ant process, when being extra verbose

>>> print system(buildout + ' -v')
Installing ...
<BLANKLINE>
echo:
     [echo] Foo Bar
<BLANKLINE>
BUILD SUCCESSFUL
Total time: 0 seconds
<BLANKLINE>
javaproject: Build successful
<BLANKLINE>

Let’s see if the classpath verification works

>>> write(sample_buildout, 'buildout.cfg',
... """
... [buildout]
... parts = javaproject
...
... [javaproject]
... recipe = collective.recipe.ant
... classpath = %s %s
... ant-options =
...     echo
...     -buildfile %s
...
... """ % (join(dirname(__file__), 'testdata'),
...        tmpdir('foo'),
...        buildfile))
>>> print system(buildout)
Uninstalling javaproject.
Installing javaproject.
javaproject: Build successful
<BLANKLINE>

Now we try to reference a (hopefully) nonexisting directory

>>> write(sample_buildout, 'buildout.cfg',
... """
... [buildout]
... parts = javaproject
...
... [javaproject]
... recipe = collective.recipe.ant
... classpath = %s
... ant-options =
...     echo
...     -buildfile %s
...
... """ % (join(dirname(__file__), '__bogus__dir__'),
...        buildfile))
>>> print system(buildout)
While:
  Installing.
  Getting section javaproject.
  Initializing part javaproject.
Error: Classpath .../__bogus__dir__ does not exist.
<BLANKLINE>

Changelog

0.1 (2008-01-20)

  • Initial release.

Contributors

Kai Lautaportti (dokai), Author - kai.lautaportti@hexagonit.fi

Tom Gross - tom@toms-projekte.de

Download

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page