2013-05-24 15 views
20

Ich versuche Graplel Tasks als eine Art "OS Agnostic Shell-Skript" zu verwenden. Ich habe keine Probleme beim Schreiben der Logik der Build-Datei, aber ich würde gerne in der Lage sein, es von einem beliebigen Ordner aus auszuführen.Gradle: Ordner, aus dem "Gradle" ausgeführt wurde

Mein erster Versuch war, einen Ordner mit meiner build.gradle Datei auf dem Weg zu bringen, und dann auszuführen versuchen:

gradle myMask 

aus einem Ordner, der nicht build.gradle enthält - aber das doesn arbeite nicht.

Mein nächster Versuch war:

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

Aber das funktionierte nur auf einige verlängern. In meiner Aufgabe würde ich gerne alle Dateien im CURRENT DIRECTORY finden. Strom - nicht die Bedeutung, die build.gradle aber diejenige aus, in dem ich die Ausführung "gradle ....."

ich versucht habe, enthält:

file(".") 

und

file("$projectDir") 

und einige mehr, aber alle von ihnen zeigen auf den Ordner mit Build-Skript, nicht die von , die ich es ausführen.

Irgendwelche Ideen wie kann ich das tun?

+1

wo haben Sie System.getProperty ("user.dir") ??? – Ahmed

Antwort

42

und der Gewinner ist:

System.getProperty("user.dir") 
11

-Datei („“) gibt immer den aktuellen Projektordner, die notwendig und nicht das Arbeitsverzeichnis ist nicht. Um das Arbeitsverzeichnis zu referenzieren, können Sie folgendes verwenden:

new File(".").absolutePath 

hoffe das hilft!

René

+1

Nein, das funktioniert nicht. Dadurch wird der Ordner zurückgegeben, in dem sich die build.gradle-Datei befindet. Und genau das will ich nicht. –

+1

haben Sie dieses Snippet getestet? Ich bin sicher, dass es das aktuelle workingDir als das Standard-Java-Verhalten für neue Datei (".") Zurückgibt. –

+1

Eigentlich habe ich das gesucht, obwohl es die gestellte Frage vielleicht nicht beantworten würde. Vielen Dank! – milosmns

Verwandte Themen