2009-10-20 20 views
36

È possibile sapere da quale directory l'utente ha eseguito Ant?Trova la directory di lavoro da Ant

Per esempio, potrei voler eseguire solo i test di unità nella directory di lavoro corrente, piuttosto che tutti i test per l'intero progetto.

ho provato questo:

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

ma che non funziona.

+1

CWD non è parte di una tipica di Windows set di variabili di ambiente. Come stai impostandolo? La risposta fornita da @Asaph è molto più drastica. – DaveParillo

risposta

57

L'intero oggetto Proprietà restituito da System.getProperties() è esposto da Ant. Prova questo:

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

${basedir} potrebbe anche essere utile.

In Netbeans sotto Linux, ${user.dir} sembra sempre uguale a ${user.home}, ma ${basedir} mi fornisce l'effettiva directory dalla quale viene eseguito il form (quindi mi assegna la dir del progetto).

+7

Per impostazione predefinita, basedir è la directory padre del file build. Questo non è necessariamente uguale alla * directory di lavoro. * –

+0

Questo è esattamente il mio problema. Non riesco a capire come ottenere che la mia directory di lavoro sia un'altra directory quando invoco il mio script ant da uno script ant diverso in un'altra directory. Vedo user.dir è la directory dello script ant chiamante, e basedir è la directory da cui voglio eseguire il mio script ant. Io chiamo il mio script ant usando '', ma questo cambia solo la baseir e non la directory di lavoro corrente. – searchengine27

2

A meno che non si utilizza Windows, questo vi darà la directory di lavoro corrente:

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

Il comando funziona, ma è contro lo spirito Ant "scrivi una volta, costruisci ovunque" poiché non funziona su Windows. –

Problemi correlati