ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andy Kriger <andy.kri...@gmail.com>
Subject Re: How can I execute Ant targets from within a Java program?
Date Mon, 24 Jan 2005 02:33:40 GMT
Still no luck. I'm including my code and build files to see if that
gives anyone ideas. If you comment out the import statement the main
method works fine.

Here's my main method...
public static void main(String[] args) {
		BuildLogger logger = new DefaultLogger();
		logger.setMessageOutputLevel(Project.MSG_INFO);
		logger.setOutputPrintStream(System.out);
		logger.setErrorPrintStream(System.out);
		logger.setEmacsMode(true);
		
		ProjectHelper ph = ProjectHelper.getProjectHelper();
		Project p = new Project();	
		p.addBuildListener(logger);
		p.setUserProperty("ant.home", "/usr/share/ant-core");
		p.setUserProperty("ant.version", "1.6.2");
		p.setKeepGoingMode(true);
		p.init();
		ph.parse(p, new File("build-test.xml"));
	}

Here's build-test.xml...
<?xml version="1.0" encoding="UTF-8"?>
<project name="myProject" default="default" basedir=".">
    <description>Test script</description>
    <import file="./build-import.xml"/>
    <target name="default" depends="shout">
        <echo message="i am the default target"/>
    </target>
    <target name="shout">
        <echo message="shouting"/>
    </target>
</project>

Here's build-import.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="myImport" default="import-default" basedir=".">
    <description>Imported script</description>
    <target name="import-default">
        <echo message="i am the default target"/>
    </target>
</project>



On Sun, 23 Jan 2005 17:52:22 -0800, Alexey N. Solofnenko
<A.Solofnenko@mdl.com> wrote:
> You need to set ant.home Java property, not the environment variable, if
> you want to launch ANT yourself.
> 
> - Alexey.
> 
> Andy Kriger wrote:
> 
> >I am playing around with executing Ant targets from Java code.
> >
> >Here's what I am trying to do (based on what I've seen in mailing list posts)...
> >
> >       public static void main(String[] args) {
> >               ProjectHelper ph = ProjectHelper.getProjectHelper();
> >               Project p = new Project();
> >               ph.parse(p, new java.io.File("build.xml"));
> >               System.out.println(p.getBaseDir());
> >               System.out.println(p.getDefaultTarget());
> >       }
> >
> >But I get ...
> >Exception in thread "main" build.xml:6: Could not create task or type
> >of type: description.
> >
> >The $ANT_HOME env var is set and I have all of the $ANT_HOME/lib dirs
> >on my classpath. So, either that's not the way to create an in-memory
> >version of a build script that can be called from code or there's
> >something more I need to do with my classpath so that the
> >ProjectHelper can find all the JARs.
> >
> >Can anyone point me in the right direction?
> >
> >thx
> >andy
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: user-unsubscribe@ant.apache.org 
> >For additional commands, e-mail: user-help@ant.apache.org 
> >
> >
> 
> --
> ------------------------------------------------------------------------
> / Alexey N. Solofnenko
> home: http://trelony.cjb.net/
> / 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org 
> For additional commands, e-mail: user-help@ant.apache.org 
> 
>

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


Mime
View raw message