Hi Dean,
I use this technique frequently as in this example lifted straight
from my code, see below.
All you have to remember is that a top level project owns many targets
which in turn own many tasks,
so just make sure you set up the parent/child references in both
directions.
// create the ant parent project
Project project = new Project();
project.setName("project");
project.init();
// create the child target
Target target = new Target();
target.setName("target");
project.addTarget(target);
project.addBuildListener(new Log4jListener());
// create the child untar task with gzip compression
Untar untar = new Untar();
untar.setTaskName("untar");
untar.setSrc(artifactFile);
untar.setDest(new File("."));
Untar.UntarCompressionMethod method = new
Untar.UntarCompressionMethod();
method.setValue("gzip");
untar.setCompression(method);
untar.setProject(project);
untar.setOwningTarget(target);
target.addTask(untar);
project.execute();
I am also the architect of ProtoJ over at google code http://code.google.com/p/protoj/
which builds on ant and other
dependencies to control a project from java rather than script.
- Ashley
On 11 Jun 2009, at 16:28, Dean Schulze wrote:
>
> The Ant documentation has a section titled "Using Ant Tasks Outside
> of Ant" which gives a teaser for how to use the Ant libraries from
> Java
> code. In theory it seems simple enough to replace build.xml with
> Build.java. The Ant documentation hints at some undocumented
> dependencies that I'll have to discover (undocumented from the point
> of
> view of using Ant from within Java).
> Using Java instead of xml to do an Ant build seems so obvious I
> wonder why there hasn't been a parallel track over the years for
> Build.java as well as build.xml.
> I asked this same question over at stackoverflow.com:
> http://stackoverflow.com/questions/972574/replacing-build-xml-with-build-java-using-java-and-the-ant-libraries-as-a-build
> The answers indicate that it isn't difficult to do, but that it is
> necessary to "spoof" the project and target objects.
> While it all looks encouraging I haven't seen any actual examples of
> how to deal with the undocumented issues mentioned. Has anyone
> documented how to do Ant builds from Java?
> Thanks.
> Dean
>
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org
|