2013-02-28 2 views
1

J'essaye de modifier mon script ant afin qu'il se construise sans erreur si un dossier lib local existe ou non. Je veux utiliser le même script sur plusieurs guerres, dont certaines auront WEB-INF/lib, et d'autres non. Si le dossier existe, incluez-le dans le classpath, sinon, ne l'incluez pas. J'ai essayé de mettre mais je ne peux pas comprendre où il devrait aller. Je pense que cela devrait être beaucoup plus simple que je ne le pense, mais mon Googl Fu me manque.Comment faire ant AN ne pas échouer si le dossier sur classpath n'est pas trouvé

<property name="local.libs" value="WebContent/WEB-INF/lib" /> 
<path id="local.libs.path"> 
<fileset dir="${local.libs}" includes="*.jar" /> 
</path> 
<target name="compile"> 
    <mkdir dir="${build.classes.dir}"/> 
    <javac srcdir="${src.java.dir}" destdir="${build.classes.dir}" debug="true" includeantruntime="false"> 
     <compilerarg value="-Xlint:-path" /> 
     <classpath refid="local.libs.path" /> 
        <classpath refid="server.libs.path" /> <!-- not referenced in snippet --> 
    </javac> 
</target> 

Répondre

1

Je fini par résoudre ce en faisant la valeur de local.libs juste WebContent/WEB-INF:

<property name="local.libs" value="WebContent/WEB-INF" /> 

puis le fileset

<fileset dir="${local.libs}" includes="*lib/*.jar" /> 

Ensuite, il construirait si ou pas le dossier lib existait.

+0

Le point clé ici est que le dossier transmis * est * présent. Le motif include est plus clément pour les dossiers absents (lib dans ce cas). Malheureusement, cette approche ne fonctionne pas pour les sous-éléments , car il est obligatoire d'avoir le dossier source exact. – mgaert

Questions connexes