2016-08-25 6 views
0

Ich habe eine Aufgabe, die ein Shell-Skript ausführen soll. In Gradle habe ich folgendes festgelegt:Gradle führt meine Aufgabe nicht aus

defaultTasks 'renaming' 
... some other stuff goes here ... 
task renaming(type: Exec) { 
    commandLine 'sh', 'src/main/bin/rename.sh' 
} 

Ich habe das Shell-Skript unter meinem Modul in src/main/bin/
Es ist jedoch nicht laufen bekommen (für Testzwecke erstellt das Shell ein Verzeichnis "asfasf" genannt). Wie kann ich das beheben?

+0

haben Sie versucht mit dem vollständigen Pfad wie /Users/you/AndroidStudioProjects/yourProject/app/src/main/bin/rename.sh? – HendraWD

+0

Das Projekt soll auf verschiedenen Rechnern kompiliert werden, daher bin ich mir nicht sicher, wie ich in diesem Fall den vollständigen Pfad ermitteln kann. –

+0

Haben Sie versucht, das Skript manuell auszuführen? Vielleicht gibt es Fehler darin – minas

Antwort

0

Wie Sie sh einen relativen Pfad geben, wird es gegen das Arbeitsverzeichnis der Exec Aufgabe aufgelöst. Stellen Sie entweder das Arbeitsverzeichnis für die Task Exec ein oder verwenden Sie file('src/main/bin/rename.sh') als zweites Argument für commandLine.

+0

Mit Befehlszeile 'sh', Datei ('src/main/build/rename.sh') immer noch nichts. –

+0

Was bedeutet "nichts"? Es wird nicht ausgeführt? Es wird gesagt, dass es aktuell ist? Es erzeugt einen Fehler? Was? Und was genau leiten Sie? Fügt das Hinzufügen von "-i" oder wenn nicht "-d" weitere Informationen hinzu, die Ihnen helfen, Ihren Fehler zu sehen? Falls nicht, füge die Ausgabe von "-i" zu deiner Frage hinzu. – Vampire

+0

"Nichts" wie in kompiliert, aber scheint nicht das Skript überhaupt zu laufen. Das Shell-Skript führt nur diesen Befehl aus: mkdir -p "asfasf". Die Ausführung des Skripts über das Terminal funktioniert einwandfrei, daher nehme ich an, dass die Art, in der ich die Aufgabe in Gradle deklariere, falsch ist oder dass sie nicht den richtigen Pfad zu ihr findet. –

Verwandte Themen