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