Travis.yml ./gradlew : Erlaubnis verweigert

Lesezeit: 2 Minuten

Benutzer-Avatar
Gabriele Marotti

Verwenden Travis C.I für einen bestehenden Android-Projektaufruf

$ ./gradlew build connectedCheck

Ich bekomme diesen Fehler:

/home/travis/build.sh: line 45: ./gradlew: Permission denied
The command "./gradlew build connectedCheck" failed and exited with 126 during .

Benutzer-Avatar
Gabriele Marotti

Es kommt auf die an exec-Berechtigung zu Ihrem Unix gradlew Skript.

Es kann mit dem Befehl behoben werden:

git update-index --chmod=+x gradlew

Eine kleine Beschreibung, um das Problem zu verstehen.
Zunächst können Sie Ihre Berechtigungen überprüfen mit:

git ls-tree HEAD

Du wirst sehen:

100644 blob xxxxxxxxxxx gradlew

Wie Sie sehen können, hat die Datei die Berechtigung 644.

Beheben Sie es, indem Sie das Executable-Flag in Ihrer Gradlew-Datei setzen und es auf 755 ändern:

git update-index --chmod=+x gradlew

Committen Sie einfach und pushen Sie die Änderungen:

git commit -m "permission access for travis"

[master e80ab1b] gradlew permission access for travis
 1 file changed, 0 insertions(+), 0 deletions(-)
 mode change 100644 => 100755 gradlew

Eine letzte Überprüfung, bei der git ls-tree erneut ausgeführt wird, um die Änderung zu sehen:

git ls-tree HEAD

Du kannst sehen:

100755 blob xxxxxxxxxxxxx   gradlew

Eine andere Möglichkeit, dieses Problem zu lösen, ist die Verwendung von:

before_install:
 - chmod +x gradlew

Diese Art von Lösung ändert nicht die Berechtigung in Ihrem Git-Repository, sondern ändert nur die Berechtigungslaufzeit in der Ausführung.

  • Es funktionierte. Ich habe das in meinem Fall in ‚before_script:‘ gemacht. Vielen Dank!

    – Sudarshan Tanuku

    21. September 2016 um 19:46 Uhr


  • Es gibt keinen Grund, das Skript nicht mit den richtigen Berechtigungen in Git einzuchecken (ich würde 1754 wählen). Ich verzichte darauf, weitere hinzuzufügen chmod Befehle in Build-Skripten, weil 1) es unnötige Komplexität hinzufügt 2) nicht für andere Teammitglieder funktioniert, die das Repo neu klonen.

    – Alex

    24. April 2019 um 11:02 Uhr

script:
 - chmod +x ./gradlew build connectedCheck

Danke an alle. Dieser Code ist verfügbar. Der Schwerpunkt liegt auf chmod +x

  • Es gibt keine Dateien wie „build“ (vielleicht gibt es ein Verzeichnis) und „connectedCheck“, daher ist dies hier unnötig. Sehen Sie sich besser die akzeptierte Antwort an

    – Nikofisi

    6. April 2021 um 3:35 Uhr

1335620cookie-checkTravis.yml ./gradlew : Erlaubnis verweigert

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy