Disons que j'ai un système de fichiers qui ressemble un peu quelque chose comme ceci:Ant: fileset « dir » attribut avec un chemin complet d'exécution étendu
- C: \ substance \ build.xml
- C : \ choses \ myfolder \ library1.jar
- C: \ substance \ myfolder \ library2.jar
intérieur build.xml, je veux définir un chemin qui ressemble à ceci:
<path id="some.id">
<fileset dir="myfolder">
<include name="**/*.jar"/>
</fileset>
</path>
Normalement, cela fonctionne bien. Toutefois, j'appelle ma propre tâche Ant personnalisée qui héritera de toutes les références (y compris le chemin "some.id") et cette tâche Ant personnalisée appellera un fichier build.xml qui réside dans une base différente. Par conséquent, l'attribut "dir" dans le groupe de fichiers n'est plus valide.
Existe-t-il un moyen de définir un "dir" tel qu'il reste valide quel que soit l'endroit où réside le second fichier build.xml?
Je veux essentiellement de faire quelque chose comme ceci:
<fileset dir="${expand.current.directory}/myfolder">
Alors quand je l'appelle la deuxième build.xml il comprendra que l'attribut « dir » est l'emplacement:
<fileset dir="c:\stuff\myfolder">
Edit: En outre, je veux une solution qui me permet de copier le projet "stuff" d'une machine à l'autre sans nécessiter de changement à la construction. Par exemple, si le projet "stuff" est sur le lecteur C: et que je copie le projet sur un lecteur D: sur une autre machine, je veux que la construction continue à fonctionner sans que je doive aller dans la construction et changer la lettre C à la lettre D.
Désolé, j'aurais probablement dû préciser dans ma question que je voudrais m'assurer que la solution est réellement indépendante de la machine. Si je devais copier le projet "stuff" sur une machine possédant un lecteur D:, la solution ci-dessus ne fonctionnerait pas sans mettre à jour le fichier ant/properties. Je m'excuse d'avoir oublié de l'ajouter dans mon message original. – digiarnie
C'est une bonne raison de l'extraire dans un fichier de propriétés, où vous pouvez changer les valeurs dépendantes de l'environnement sans avoir besoin de réécrire votre fichier build.xml. –
Une autre option pourrait être ce qui est dit par martin clayton à l'autre réponse, accéder aux propriétés d'exécution java (comme $ {user.dir}). –