/usr/bin/env: 'sh': 不是 Azure Devops 管道上的目录错误

/usr/bin/env: 'sh': Not a directory error on Azure Devops Pipeline

我有一个 gradle 项目,我想在 Azure DevOps 中的自托管代理上构建它。

这是我的 gradle 任务管道:

trigger:
 - azure-pipelines

pool:
 name: Default

steps:

 - task: Gradle@2
   inputs:
   workingDirectory: ''
   gradleWrapperFile: 'gradlew'
   gradleOptions: '-Xmx3072m'
   javaHomeOption: 'JDKVERSION'
   jdkVersionOption: 1.8
   jdkArchitectureOption: x64
   jdkUserInputPath: '/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java'
   publishJUnitResults: false
   testResultsFiles: '**/TEST-*.xml'
   tasks: 'build'

但是如果我 运行 管道我遇到了以下问题:

Error: The process '/azp/agent/_work/1/s/gradlew' failed with exit code 126
at ExecState._setResult (/azp/agent/_work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/2.176.0/node_modules/azure-pipelines-task-lib/toolrunner.js:816:25)
at ExecState.CheckComplete (/azp/agent/_work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/2.176.0/node_modules/azure-pipelines-task-lib/toolrunner.js:799:18)
at ChildProcess.<anonymous> (/azp/agent/_work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/2.176.0/node_modules/azure-pipelines-task-lib/toolrunner.js:721:19)
at emitTwo (events.js:106:13)
at ChildProcess.emit (events.js:191:7)
at maybeClose (internal/child_process.js:920:16)
at Socket.<anonymous> (internal/child_process.js:351:11)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at Pipe._handle.close [as _onclose] (net.js:509:12)

SYSTEMVSSCONNECTION exists true
   /azp/agent/_work/1/s/gradlew build
   /usr/bin/env: 'sh': Not a directory
   ##[error]Error: The process '/azp/agent/_work/1/s/gradlew' failed with exit code 126

我已经尝试手动 运行 代理上的 gradlew 包装器,它没有问题。

我可以解决问题。我刚刚使用管道设置了一个新的存储库,现在一切正常。我想,这是我旧仓库的问题。