2013-05-24 20 views
20

Sto cercando di utilizzare le attività gradle come tipo di "script agnostico del sistema operativo". Non ho problemi a scrivere la logica del file di build, ma mi piacerebbe essere in grado di eseguirlo da qualsiasi cartella.Gradle: recupera cartella da cui è stato eseguito "gradle"

Il mio primo tentativo è stato quello di mettere una cartella con il mio file build.gradle sul percorso, e quindi provare a eseguire:

gradle myMask 

da una cartella che non contiene build.gradle - ma che doesn lavorare

Il mio prossimo tentativo è stato:

gradle -b /folder/containing/build.gradle myTask 

Ma che funzionava solo in certa misura. Nel mio compito vorrei trovare tutti i file in DIRECTORY CORRENTE. attuale - cioè non quello che contiene build.gradle ma quella da dentro che sto eseguendo "Gradle ....."

ho provato:

file(".") 

e

file("$projectDir") 

e altro ancora, ma tutti puntano alla cartella contenente lo script di compilazione, non quella di che sto eseguendo.

Qualche idea come posso farlo?

+1

dove hai aggiunto System.getProperty ("user.dir") ??? – Ahmed

risposta

42

e il vincitore è:

System.getProperty("user.dir") 
11

file ("") restituisce sempre la cartella di progetto corrente che costerà necessariamente e non la directory di lavoro. Per fare riferimento alla directory di lavoro è possibile utilizzare:

new File(".").absolutePath 

speranza che aiuta!

René

+1

No, non funziona. questo restituirà la cartella in cui si trova il file build.gradle. E questo è esattamente ciò che NON VOGLIO. –

+1

hai testato questo snippet? Sono sicuro che restituirà l'attuale workingDir poiché questo è il comportamento java predefinito per il nuovo file ("."). –

+1

In realtà questo è quello che stavo cercando, anche se potrebbe non rispondere alla domanda posta. Grazie! – milosmns

Problemi correlati