プロジェクトのgradlew
ファイルをGitを使用してWindowsマシンからリモートリポジトリにコミットした後、Linuxサーバーでのgradlew
の呼び出しが次のメッセージで失敗しました。
/ usr/bin/env:bash:そのようなファイルまたはディレクトリはありません
何が起こった?
問題の原因は、Windows上のGitがgradlew
の行末をUnixスタイル(LF)からWindowsスタイル(CRLF)に変換したことでした。
git config core.autocrlf false
を使用して、自動変換をオフにすることができます。
gradlew
の行末をUnixスタイルに戻すと、問題が修正されました。 Vimでは、これはset fileformat=unix
を使用して行われます。
これは、gradlewファイルにWindowsファイルの末尾があるためです。
dos2unix
をapt-get
またはyum
とともにインストールするには、次を実行します。
Sudo apt-get install dos2unix
Sudo yum install -y dos2unix
dos2unix
を使用して行末を変換します
fromCRLF
Windows CarriageReturn + LineFeed
toLF
Linux LineFeedのみ:
dos2unix ./gradlew
次に、テストのためにgradlew
を実行します。
./gradlew clean -d
答えてくれてありがとう、これらは、私がMacを使っているときに、問題がWindowsがgradlewを作成していたことを強調していました。
これを修正するために、アプリのディレクトリから次のコマンドを実行しました。
gradle wrapper
これにより、動作するgradleラッパーが作成されます(壊れた部分を置き換えます)。 (ローカルgradle
インストールを使用してアプリのラッパーを修正することに注意してください)