ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Russell <mark_russ...@instantiations.com>
Subject Re: calling ant API from java instead of using build.xml from console
Date Tue, 03 Jan 2006 17:12:25 GMT
I would be interested in looking at that code
Stephen McConnell wrote:

> 
>
>The approach your taking is kind of out of sync with the Ant object model. A
>much easier approach is to construct your project, then parameterize the
>project and finally trigger project execution.  The parameterization of the
>project could include:
>
>  a) assign a project basedir
>  b) assigning a template build file - for example you could declare a build
>file
>     that declares a bunch of build phases (e.g. init, prepare, build,
>package, 
>     test, install) - note: these target don't necessarily need to do
>anything
>  c) add build listeners - you could create any number of build listeners
>that 
>     listener for build events declared in your template and these listeners
>     could be doing the bulk of the work needed to build your project
>
>In the build listeners you could do the sorts of things your describing in
>your code:
>
>  MyTask task = new MyTask();
>  task.setProject();
>  task.init();
>  task.setXxxx( whatever );
>  Yyy yyy = task.createYyy();
>  yyy.setSomething( true );
>  task.execute();
>
>This approach kind of ties into the overall assumptions made by ant which in
>turn makes things a lot easier. If your interested I can point you to code
>that does the above.
>
>Cheers, Steve.
>
>
>  
>
>>-----Original Message-----
>>From: Dieter Frej [mailto:dieter_frej@gmx.net] 
>>Sent: Monday, 2 January 2006 6:45 PM
>>To: user@ant.apache.org
>>Subject: calling ant API from java instead of using build.xml 
>>from console
>>
>>Hi,
>>
>>I would like to call ant (1.6.5) from java (1.5.0_04-b05), 
>>but I am a little puzzled with all createXYZ, addXYZ, init, 
>>and execute methods and in which order they should be called. 
>>I wrote it the following way:
>>
>>
>>
>>Project project = new Project();
>>
>>XmlLogger xlog = new XmlLogger();
>>project.addBuildListener(xlog);
>>project.init();
>>
>>Target target = new Target();
>>target.setLocation(new Location("somewhere")); 
>>target.setName("blubb");
>>
>>Mkdir mkdir = new Mkdir();
>>mkdir.setProject(project);
>>mkdir.setTaskName("init");
>>
>>mkdir.init();
>>
>>String destDir = "build/classes";
>>mkdir.setDir(new File(destDir));
>>
>>target.addTask(mkdir);
>>
>>Javac javac = new Javac();
>>javac.setProject(project);
>>javac.setTaskName("compile");
>>
>>javac.init();
>>
>>String srcDir = "src";
>>
>>javac.setDestdir(new File(destDir));
>>javac.setSrcdir(new Path(project, srcDir));
>>
>>javac.setDebug(true);
>>javac.setDeprecation(false);
>>javac.setOptimize(false);
>>
>>Path classPath = new Path(project);
>>
>>String classesDir = destDir;
>>Path classesPath = classPath.createPath(); 
>>classesPath.setPath(classesDir); classPath.add(classesPath);
>>
>>ArrayList<String> libs = new ArrayList<String>(); 
>>libs.add("junit3.8.1/junit.jar");
>>
>>Iterator it = libs.iterator();
>>while(it.hasNext()) {
>>     String lib = (String) it.next();
>>     FileSet libFile = new FileSet();
>>     libFile.setFile(new File(lib));
>>
>>     classPath.addFileset(libFile);
>>}
>>
>>javac.setClasspath(classPath);
>>
>>//Javac.ImplementationSpecificArgument compilerArgs = 
>>javac.createCompilerArg(); 
>>//compilerArgs.setLine("-Xlint:deprecation -Xlint:unchecked");
>>
>>target.addTask(javac);
>>
>>project.addTarget("bla", target);
>>
>>project.executeTarget("bla");
>>
>>
>>
>>This more or less works fine, but I am not sure if it is 
>>correct, because the XmlLogger gets a NullPointerException 
>>that is caused by the fact that never buildStarted() is called...
>>
>>I hope someone is able to help me. Thanks in advance!
>>
>>-Didi
>>
>>---------------------------------------------------------------------
>>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
>
>
>  
>


-- 
Mark Russell
Instantiations, Inc.
724-368-3331 (land line)
http://www.instantiations.com 



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


Mime
View raw message