Comment spécifier le répertoire de base alors nous exécutons ant comme ant -f somedir/dir/build.xml.
Ant définit basé sur relatif à build.xml, si je le spécifie
<project basedir="." ..>
J'aurais aimé être basé sur l'endroit où Ant est exécuté.
Utilisez -D pour remplacer la propriété basedir:
ant -Dbasedir=`pwd` -f path/to/build.xml
L'utilisation de pwd
est une chose uniquement sous Linux, mais vous pouvez toujours y placer le chemin absolu du répertoire en cours si vous êtes sur une autre plate-forme.
Je ne pense pas qu'il soit possible de faire cela dans build.xml, à moins de ré-exécuter ant avec la tâche ant
.
Vous pouvez essayer d'utiliser subant task:
En supposant que vous ayez deux dossiers différents
Votre dossier actuel X:/votre/lancement/dossier où vous exécutez ant commande depuis
Dossier où votre fichier bulid.xml de destination est: Y: /any/folder/with/build.xml
Vous pouvez faire ce qui suit:
Créez build.xml in X:/votre/lancement/dossier avec le contenu suivant:
<target name="mytarget">
<subant target="debug">
<fileset dir="Y:/any/folder/with" includes="build.xml"/>
</subant>
</target>
Ensuite, vous pouvez exécuter ant mytarget from X:/your/launching/folder folder pour commencer à construire votre Y: /any/folder/with/build.xml
Mettre à jour:
Vous pouvez remplacer la propriété basedir pour la construction du sousant comme ceci:
<subant target="debug">
<property name="basedir" value="./any/dir/with/project"/>
<fileset dir="Y:/any/folder/with" includes="build.xml"/>
</subant>
une autre solution (si cela a plus de sens dans certains cas) pourrait être de remplacer basedir
via la tâche var
de l’extension antcontrib
comme décrit ici: https://stackoverflow.com/a/25786329/1915920