gradlew
使用 Git将我的项目文件从我的 Windows 机器提交到远程仓库后,gradlew
在我的 Linux 服务器上调用失败并显示以下消息:
/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
转换行尾
从 CRLF
Windows 回车 + 换行
仅适用于 LF
Linux LineFeed:
dos2unix ./gradlew
然后运行你gradlew
的测试:
./gradlew clean -d
感谢您的回答,这些强调了当我在 Mac 上时 Windows 创建 gradlew 的问题。
为了解决这个问题,我从应用程序的目录中运行了以下命令:
gradle wrapper
这会创建(替换损坏的)一个 gradle 包装器,它可以工作!(注意它使用您的本地gradle
安装来修复应用程序的包装)
要永久解决Linux 和 Mac 上的 Git 结帐问题:
在您的 Git 存储库根目录中,添加一个.gitattributes
以此内容命名的文件:
gradlew text eol=lf
更多信息:https ://git-scm.com/docs/gitattributes
PS:也适用于.sh
使用此条目的文件:
*.sh text eol=lf
这些条目在结帐时工作,并将这些文件的行尾转换为LF
.
一个供应商提供了一个gradlew
带有 Windows 回车符的产品。gradlew
在 vim 中打开会显示^M
行尾。运行:e ++ff=dos
删除了行尾并解决了这个问题。