use*_*390 1 java android jenkins
我在Jenkin上为android新项目创建了一份新工作.每当我运行该作业时,我收到错误java.io.ioexception错误13权限被拒绝.詹金说无法运行程序gradlew.我知道gradlew脚本需要根据错误说明执行权限.我授予了这些并重新开始jenkin工作.我仍然得到同样的错误.Jenkin在构建之后恢复执行权限.当我从现有作业创建新作业并使用旧项目存储库配置时,它运行正常.当我配置新项目存储库时,它引发了权限问题.我在许可的情况下玩了很多但没有成功.我还比较了新旧项目脚本文件.线条差异很小但不应该是一个问题.任何人都可以指导我做错了什么.
谢谢
use*_*390 11
这显然是一个许可问题.
Run Code Online (Sandbox Code Playgroud)java.io.IOException: Cannot run program "<http://jenkins.gradlew" error=13, Permission denied Caused by: java.io.IOException: error=13, Permission denied
解决gradlew权限问题有两种解决方案.
Jenkin将在您立即按下构建时更改权限.请记住,这些更改未提交.如果您的工作不是发布工作,则该过程正常.如果它是发布工作,它会创建另一个我遇到的问题.
Run Code Online (Sandbox Code Playgroud):workspace:app:checkCommitNeeded FAILED :app:release FAILED * What went wrong: Execution failed for task ':workspace:app:checkCommitNeeded'. > You have uncommitted files: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ M gradlew
所以解决方法是
使用可执行位集提交gradlew:
Run Code Online (Sandbox Code Playgroud)git update-index --chmod=+x gradlew git commit
然后,您将不再需要jenkins设置来设置可执行文件,这是导致第二个问题的解决方法.
希望它可以节省一些时间,因为我花了几个小时来完成工作.
我使用 Github 进行源代码管理。它在那里获取代码并每次都更新它,因此在提交我的 Jenkins 作业之前将其更改为 +x 并没有帮助。在 Linux 中,该项目位于 /.jenkins/workspace/MyProjectName/SomeSubFolder/gradlew - 并且每次提交新作业时都会丢失 +x(我认为是 644)。
解决方案是选中Make gradlew executable复选框 (in Build --> Use Gradle Wrapper) - 现在是 755,并且正在执行 gradle 任务。
| 归档时间: |
|
| 查看次数: |
3817 次 |
| 最近记录: |