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

Reply via email to