Skip to main content

zc.buildout recipe for building ant (java) projects

Project description

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

Project details


Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page