2009-10-20 4 views
36

Est-il possible de dire dans quel répertoire l'utilisateur a exécuté Ant? Par exemple, il se peut que je ne souhaite exécuter que les tests unitaires dans le répertoire de travail en cours, plutôt que tous les tests pour l'ensemble du projet.Trouver répertoire de travail à partir de Ant

J'ai essayé ceci:

<property environment="env" /> 
<echo>${env.CWD}</echo> 

mais cela ne fonctionne pas.

+1

CWD ne fait pas partie d'un ensemble de caractéristiques de Windows variables d'environnement. Comment le définissez-vous? La réponse @Asaph fournie est beaucoup plus claire. – DaveParillo

Répondre

57

L'objet Propriétés entier renvoyé par System.getProperties() est exposé par Ant. Essayez ceci:

<echo>${user.dir}</echo> 
39

${basedir} peut également être utile. Dans Netbeans sous Linux, ${user.dir} semble toujours égal à ${user.home}, mais ${basedir} me donne le répertoire réel où Ant est exécuté (cela me donne le répertoire du projet).

+7

Par défaut, basedir est le répertoire parent du fichier de construction. Ce n'est pas nécessairement le même que le * répertoire de travail. * –

+0

C'est en fait exactement mon problème. Je n'arrive pas à comprendre comment obtenir mon répertoire de travail à un autre répertoire lorsque j'appelle mon script ant d'un script ant différent dans un autre répertoire. Je vois user.dir est le répertoire du script ant appelant, et basedir est le répertoire dans lequel je veux exécuter mon script ant. J'appelle mon script ant en utilisant '', mais cela ne change que le répertoire et pas le répertoire de travail courant. – searchengine27

2

Sauf si vous utilisez Windows, cela vous donnera le répertoire de travail courant:

<exec executable="sh" outputproperty="my.cwd"><arg line="-c pwd"/></exec> 
+4

La commande fonctionne, mais c'est contre l'esprit Ant "écrire une fois, construire partout" car il ne fonctionne pas sous Windows. –

Questions connexes