Après avoir validé le fichier gradlew
de mon projet de ma machine Windows dans le référentiel distant à l'aide de Git, l'appel de gradlew
sur mon serveur Linux a échoué avec le message suivant:
/ usr/bin/env: bash: Aucun fichier ou répertoire de ce type
Qu'est-il arrivé?
La cause du problème était que Git sous Windows avait converti les fins de ligne de gradlew
du style Unix (LF) au style Windows (CRLF).
Vous pouvez désactiver cette conversion automatique à l'aide de git config core.autocrlf false
.
Régler les fins de ligne de gradlew
sur Unix a résolu le problème. Dans Vim, ceci est fait en utilisant set fileformat=unix
.
En effet, le fichier gradlew comporte des terminaisons de fichier Windows.
Vous pouvez installer dos2unix
avec apt-get
ou yum
en lançant:
Sudo apt-get install dos2unix
Sudo yum install -y dos2unix
puis utilisez dos2unix
pour convertir les fins de ligne
de CRLF
Windows CarriageReturn + LineFeed
à LF
Linux LineFeed uniquement:
dos2unix ./gradlew
Ensuite, lancez votre gradlew
pour un test:
./gradlew clean -d
Merci pour les réponses, ceux-ci ont souligné que le problème était Windows créant le gradlew, quand je suis sur mac.
Pour résoudre ce problème, à partir du répertoire de l'application, j'ai exécuté la commande:
gradle wrapper
Cela crée (remplace le cassé) un emballage gradle, cela fonctionne! (notez qu'il utilise votre installation gradle
locale pour réparer le wrapper de l'application)