10
votes

Annonces multiples multiples avec des ressources copiées

Considérons un fragment de build.xml minimal qui construit un pot à partir de sources et inclut toutes les ressources non Java: xxx pré>

Imaginez maintenant que je dois prendre en charge une liste de répertoires de source: P>

<property name="src.dirs" value="src;src-gen" />

ant

0 commentaires

4 Réponses :


10
votes

Normalement, vous les énumérez tous ensemble:

<path id="source.path">
    <pathelement path="${src.dir}"/>
    <pathelement path="${src2.dir}"/>
    <pathelement path="${src4.dir}"/>
</path>

<javac destdir="bin">
    srcpathref="source.path"/>


2 commentaires

Comme je l'ai mentionné Javac est facile car il acceptera une liste directement. Mon problème est avec la tâche copie .


Dans la deuxième voie, pour utiliser le chemin dans Javac, utilisez



4
votes

Je ne suis pas sûr d'un moyen de le faire avec des tâches de fourmis intégrées, mais vous pouvez utiliser un ant-contrib tâche xxx


2 commentaires

C'est ce que j'ai fini par faire, bien que cela ne permet pas la création d'une ressource «composite» pouvant être réutilisée par référence.


Il convient également d'être considéré comme un exemple de création de trajectoire à partir de la liste des répertoires avec à la fin de ant.apache.org/manual/tasks/script.html



4
votes

La solution simple consiste à spécifier de plusieurs fichiers de fichiers, de la même manière que la tâche Javac prend en charge plusieurs attributs "SRC": xxx

ceci est bien sûr supposant que le nombre d'emplacements de code source est corrigé, ce qui n'est pas déraisonnable à attendre.

Si vous souhaitez conduire ceci à l'aide d'une propriété de liste, vous devez recourir à l'intégration d'un script dans votre construction pour traiter cette liste (je ne peux pas endourrer les ant-forts ): xxx

notes:

  • comparer les cibles "Build". Vous remarquerez que la solution groovy appelle la fourmi de la même manière. C'est pourquoi j'aime vraiment l'intégration de Groovy avec la fourmi.
  • Exemple comprend également une cible "Bootstrap" pour télécharger la dépendance de JAR Groovy à partir de Maven Central . Vous pouvez également utiliser Ivy pour gérer vos dépendances de votre construction.

0 commentaires

0
votes

Une solution simple sans tâches anti-contributions ni scripts intégrés: xxx

multirootfileSet à la rescousse! ;-) nécessite une fourchette 1.9.4 ou supérieure.


0 commentaires