Hello, Thank you for response. I have found the problem this week-end. As you said, I have something wrong in my "javac" task. Now all work great.
My custom task walk (no recursively) trough a folder who contains many source folders (each folder contains a module for a main app), set a property who contains the source folder name and execute each "subtasks" who compile sources collect resources and make a jar using the property to create the path and the jar name. It seems that the "subant" task can achieve what I do with my custom task but I no (already) know this task. Thank your really much. Now I know the "subant" task and the tip to launch "ant -v". -----Message d'origine----- De : Antoine Levy Lambert [mailto:anto...@gmx.de] Envoyé : vendredi 6 mars 2009 23:27 À : Ant Users List Objet : Re: [Personnal task] Executing javac from a task container Hello Gervais, out of my head I do not see anything specific about the javac task which would restrict its usage. Maybe you are just not passing to it the location of a directory containing source files due to a scripting error, or a mis-assumption about where the source directories are. What I do not understand clearly from your email is how do your custom task and your build file interact ? To find out in detail what is happening with javac, you could run your build in verbose mode. (ant -v) The classical way to compile and package many jars would be to : - either create one build file per source folder, - have these folder specific build files import a generic build file in one location which can work for each source folder, - then use the <subant/> task to iterate through the source folders Regards, Antoine Gervais wrote: > Hi everybody, > > I need to compile and package many jars (one jar per source folder). Because > I haven't found any task to do that, I have writing my own who extends > org.apache.tools.ant.Task and implements org.apache.tools.ant.TaskContainer. > > She work great with tasks like "echo", "mkdir", "copy" but the "javac" task > is never executed. How can I run the "javac" task from a TaskContainer ? > > Here is the main code and you can found the full class as attachment. > public void execute() throws BuildException { > if ( baseDir.isDirectory() ) { > for (File subdir : baseDir.listFiles(new DirectoryFilter())) > { > if ( getProject().getProperty(identifier)==null ) { > getProject().setNewProperty(identifier, > subdir.getName()); > } else { > getProject().setProperty(identifier, > subdir.getName()); > } > > for (Task subtask : tasks) { > log("> Run task "+subtask.getTaskName()); > subtask.perform(); > } > } > } else { > log("Base directory \""+baseDir+"\". isn't a directory.", > 0); > } > } > > And finally the task content : > <foreach > basedir="${manager.location}${file.separator}${manager.moddir}" > identifier="modulename"> > <echo level="info">Building module > ${modulename}</echo> > <mkdir > dir="${modsdir}${file.separator}sicsmod-${modulename}"/> > <javac > srcdir="${manager.location}${file.separator}${manager.moddir}${file.separato > r}${modulename}" > > destdir="${modsdir}${file.separator}sicsmod-${modulename}" > > classpathref="manager.modules.classpath" > > classpath="${build}${file.separator}${manager.jarname}" > includes="${manager.modules}/**" > debug="on" /> > <!-- Copy each properties files (resources) and > images --> > <copy > todir="${modsdir}${file.separator}sicsmod-${modulename}"> > <fileset > dir="${manager.location}${file.separator}${manager.moddir}${file.separator}$ > {modulename}" > includes="**/*.properties, > **/*.png" /> > </copy> > </foreach> > > Thanks > > > __________ Information from ESET NOD32 Antivirus, version of virus signature > database 3912 (20090306) __________ > > The message was checked by ESET NOD32 Antivirus. > > http://www.eset.com > > > > ------------------------------------------------------------------------ > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@ant.apache.org > For additional commands, e-mail: user-h...@ant.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@ant.apache.org For additional commands, e-mail: user-h...@ant.apache.org __________ Information from ESET NOD32 Antivirus, version of virus signature database 3918 (20090309) __________ The message was checked by ESET NOD32 Antivirus. http://www.eset.com --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@ant.apache.org For additional commands, e-mail: user-h...@ant.apache.org