7
votes

Copier des fourmis de classe de classe à un répertoire

Je suis sûr que cela a été posé avant ou est assez simple. Mais pour une raison quelconque, je ne peux pas sembler le faire fonctionner. Je veux utiliser la fourmi pour copier le {build.classpath} code> (qui contient une liste de bocaux séparés colon) sur le $ {sortie.dir} / myApp / web-inf / lib Code>.

J'ai cela en ce moment et il ne semble pas fonctionner: p>

<copy toDir="${output.dir}/myapp/WEB-INF/lib">
  <fileset file="${build.classpath}" />
</copy>


0 commentaires

3 Réponses :


0
votes

Je pense que vous devriez mettre tous vos fichiers jar séparés colons dans un dossier racine. S'il n'est pas possible, créez une tâche distincte qui mettez ces fichiers JAR dans un seul dossier (peut être temporaire). Et Attribuer $ {build.classpath} dans ce dossier. Utilisez dans votre clause de copie.

J'espère que cela devrait aider.


0 commentaires

1
votes

Je pense que quelque chose comme ça devrait fonctionner:

<copy todir="${output.dir}/myapp/WEB-INF/lib" verbose="yes" flatten="yes" failonerror="no">    
   <fileset dir="${build.classpath}">    
      <include name="*.jar" />    
   </fileset>    
</copy>


1 commentaires

Désolé, cela ne fonctionne pas du tout. Le classPath contient la liste des chemins séparés du côlon. La seule chose qui a fonctionné pour moi jusqu'à présent, est user268396 la réponse.



13
votes

Le manuel ANT sur la tâche de copie contient la réponse à votre problème. L'un des exemples d'extraits qu'il fournit:

Collectez tous les éléments du paramètre de classe actuel dans un répertoire de destination, en aplatissant la structure de répertoire. xxx


3 commentaires

Merci beaucoup, j'ai dû oublier cela en quelque sorte. Cela a parfaitement fonctionné. Il copie tout dans le classpath dans le répertoire de destination. Mais le classPath peut contenir des répertoires ou des fichiers qui ne sont pas des pots, comment puis-je exclure tout ce qui n'est pas un fichier JAR?


Remplacez l'utilisation du chemin avec .


La partie indispensable de la réponse est le Flatten = "true" option. Si vous ne vous définissez pas, je ne ferai rien.