Hello Patrick,

you can have a look at this document from our manual too :

http://ant.apache.org/manual/antexternal.html

Creating a Project object is necessary in nearly all cases because ant tasks generally need to be bound to a project in order to be able to log.

I have another example which is similar to the one above but is more complete :

package com.acme.anttasks;

import org.apache.tools.ant.DefaultLogger;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.Target;

/**
 */
public class SomeTaskWrapper {
    public static void main(String[] args) {
        Project antProject = new Project();
        SomeTask someTask = new SomeTask();
        // create a target, since every execute in Ant need a target
        Target antTarget = new Target();
        antTarget.setName("targetName");
        antProject.addTarget(antTarget);

        // specify that this target will execute SomeTask
        antTarget.addTask(someTask);

        DefaultLogger antDefaultLogger = new DefaultLogger();
        antDefaultLogger.setEmacsMode(true);
        antDefaultLogger.setErrorPrintStream(System.err);
        antDefaultLogger.setOutputPrintStream(System.out);
        antDefaultLogger.setMessageOutputLevel(Project.MSG_INFO);

        antProject.addBuildListener(antDefaultLogger);
        antProject.executeTarget("targetName");
    }

}
Regards,

Antoine

On 1/12/11 8:08 AM, Patrick Martin wrote:
Hello and happy new year to you all,

What is the recommended way for launching an Ant script/task from Java code ?

It seems to me that the following URL
http://ant.apache.org/manual/running.html#viajava
rather explains how to launch Ant with java.exe from the command line.
Is it also recommended to launch the main() method from with a Java
code? Or is there a launch API that can be used?

I also found people working directly with the Ant project class. Something like:
Project p = new Project();
p.initProperties();
p.setBaseDir(getBaseDir(baseDir, buildFile));
p.setUserProperty("ant.file", getBuildFile(buildFile));
try {
        p.fireBuildStarted();
        p.init();
        ProjectHelper helper = ProjectHelper.getProjectHelper();
        p.addReference("ant.projectHelper", helper);
        helper.parse(p, buildFile);
        p.executeTarget(null == target ? p.getDefaultTarget() : target);
        p.fireBuildFinished(null);
} catch (BuildException e) {
        p.fireBuildFinished(e);
        [...]
} finally {
        [...]
}

Thank you,

Patrick




---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org

Reply via email to