« Return to Thread: Replacing build.xml with Build.java - Doing Ant builds directly from Java

Re: Replacing build.xml with Build.java - Doing Ant builds directly from Java

by Ashley Williams-8 :: Rate this Message:

Reply to Author | View in Thread

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@...
For additional commands, e-mail: user-help@...

 « Return to Thread: Replacing build.xml with Build.java - Doing Ant builds directly from Java