【发布时间】:2021-02-04 16:43:52
【问题描述】:
我有一个 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 包装器,它没有问题。
【问题讨论】:
-
您是在构建安卓应用还是Java 应用?您使用什么操作系统?如果您使用 Microsoft 托管的代理,您是否有同样的问题?根据您的错误信息:/usr/bin/env: 'sh': Not a directory。这可能与换行符类型有关。详情请参考this ticket。
-
@WalterQian-MSFT 我正在构建一个 java 应用程序。我使用的是windows,但我的代理是linux。如果使用微软代理,我也会遇到同样的问题。我也看到了这张票,但解决方案对我不起作用,我使用 notepad++ 将其转换为 unix 样式。
-
您提到您运行了 gradlew wrapper 命令。运行 gradlew build 命令的结果是什么?这是应该使用的命令,也是管道中 gradle 任务使用的命令。我关注了这个sample,它对我有用。你可以参考一下。
-
@WalterQian-MSFT 我解决了这个问题。我用管道设置了一个新的存储库,现在一切正常。我认为,这是我的旧仓库的问题。但我感谢你的努力。
-
很高兴听到您解决了问题。你能分享你的答案并标记它吗?这将使有相同问题的人更容易找到答案。
标签: bash gradle azure-devops pipeline gradlew