繁体   English   中英

无法运行程序,权限被拒绝erro13 Jenkins

[英]Can not run program, permission denied erro13 Jenkins

我在Jenkin上为android新项目创建了新工作。 每当我运行作业时,都会收到错误java.io.ioexception错误13权限被拒绝。 詹金说无法运行gradlew程序。 我知道gradlew脚本根据错误说明需要执行权限。 我批准了这些,然后重新执行詹金工作。 我仍然遇到相同的错误。 Jenkin在构建后恢复执行许可。 当我从现有作业创建新作业并配置了旧项目存储库时,它运行良好。 当我配置新的项目存储库时,它引发了权限问题。 我在许可的情况下打了很多球,但没有成功。 我还比较了新旧项目脚本文件。 几乎没有什么区别,但这不应该成为问题。 任何人都可以指导我做错了什么。

谢谢

显然,这是一个许可问题。

 java.io.IOException: Cannot run program "<http://jenkins.gradlew" error=13, Permission denied Caused by: java.io.IOException: error=13, Permission denied 

有两种解决方案来解决gradlew权限问题。

  • 转到Jenkin Job配置
  • 转到“构建”选项卡,然后检查gradlew可执行文件。

当您现在按下build时,Jenkin将更改权限。 请记住,这些更改是未提交的。 如果您的工作不是发布工作,则该过程运行良好。 如果是发布作业,则会造成我遇到的另一个问题。

 :workspace:app:checkCommitNeeded FAILED :app:release FAILED * What went wrong: Execution failed for task ':workspace:app:checkCommitNeeded'. > You have uncommitted files: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ M gradlew 

所以解决是

提交gradlew并设置可执行位:

 git update-index --chmod=+x gradlew git commit 

然后,您将不再需要jenkins设置将其设置为可执行文件,这是导致第二个问题的解决方法。

希望这可以节省一些时间,因为我花了数小时进行工作。

我正在使用Github进行源代码管理。 它在那里获取代码并每次都对其进行更新,因此在提交我的Jenkins工作之前将其更改为+ x并没有帮助。 在Linux中,该项目位于/.jenkins/workspace/MyProjectName/SomeSubFolder/gradlew-每次提交新作业时,它就会丢失+ x(我认为是644)。

解决方案是选中“ Make gradlew executable复选框(在Build --> Use Gradle Wrapper )-现在是755,并且正在执行gradle任务。

您是否在使用jenkinsfile进行作业配置? 如果是这样,您需要在此处添加gradlew的权限更改。

sh 'chmod 755 ./gradlew'

听起来您的gradlew每次都会被替换为未设置执行权限的版本,因此您需要通过脚本或jenkinsfile将其作为jenkins作业的一部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM