Yes, they look almost the same in this case. But this is only to see if "import" works. Acctually I have complex requirement on <import>.
Please note in my case running "ant -f c.xml" was ok; and calling a.xml in .java ok too. Thanks, Amy --- [EMAIL PROTECTED] wrote: > An <import>ed file is (nearly) the same as coded > directly inside (at the end of) your main buildfile. > > Jan > > >-----Ursprüngliche Nachricht----- > >Von: M. Z. [mailto:[EMAIL PROTECTED] > > >Gesendet: Freitag, 5. August 2005 05:28 > >An: user@ant.apache.org > >Betreff: How to call imported ant target/task in > Java > > > >Hi there, > > > >Can anybody advice me how to call an ant > target/task, which is > >"<import/>"ed from another build file, from within > Java code? > > > >Here's my Java code (I got the sample from this > mailing list, thanks): > >--------------------------------------------- > >import org.apache.tools.ant.*; > >import java.io.*; > >import java.util.*; > > > >public class MyTest > >{ > > private Project project; > > public void init(String _buildFile, String > _baseDir) > >throws Exception > > { > > project = new Project(); > > try { project.init(); } > > catch (BuildException e) > > { throw new Exception("The default task > list could > >not be loaded." > >); } > > // Set the base directory. If none is > given, "." is used. > > if (_baseDir == null) _baseDir=new > String("."); > > try { project.setBasedir(_baseDir); } > > catch (BuildException e) > > { throw new Exception("The given > basedir doesn't > >exist, or isn't a directory."); } > > if (_buildFile == null) _buildFile=new > String("a.xml"); > > try { > ProjectHelper.getProjectHelper().parse(project, > >new File(_buildFile)); } > > catch (BuildException e) > > { throw new Exception("Configuration > file > >"+_buildFile+" is invalid, or cannot be read."); } > > } > > > > public void runTarget(String _target) throws > Exception > > { > > // Test if the project exists > > if (project == null) throw new > Exception("No target > >can be launched because the project has not been > initialized. > >Please call the 'init' method first !"); > > // If no target is specified, run the > default one. > > if (_target == null) _target = > project.getDefaultTarget(); > > // Run the target > > try { project.executeTarget(_target); } > > catch (Exception e) > > { throw new Exception(e.getMessage()); } > > } > > public static void main(String args[]) > > { > > try{ > > > > MyTest mytest=new MyTest(); > > mytest.init("c.xml","."); > > mytest.runTarget(null); > > }catch(Exception e) > > { > > e.printStackTrace(); > > } > > } > >} > >--------------------------------------------- > > > >Here's my build files: > >1.c.xml: > ><project basedir="." default="runtests" > name="TestC"> <import > >file="a.xml"/> </project> > > > >2. a.xml: > ><project basedir="." default="runtests" > name="TestA"> <target > >name="runtests" depends=""> <mkdir dir="ttt"/> > </target> </project> > > > >-------------------------------------- > >If I directly set build file "a.xml" in > MyTest.java, everthing > >works well. However, if I set "c.xml" then do task > "<mkdir > >dir="ttt"/>" defined in "a.xml" which was imported > by "c.xml", > >when running, I got an exception. Looks like it > can't parse my > >c.xml which include "import". BTW, I'm using ant > 1.6.2, and > >running "ant -f c.xml" was ok. > > > >Did I miss any classpath or something? Any idea? > > > >Thanks, > >Amy > > > > > > > >--------------------------------- > > Start your day with Yahoo! - make it your home > page > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: > [EMAIL PROTECTED] > For additional commands, e-mail: > [EMAIL PROTECTED] > > __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]