web-dev-qa-db-ja.com

Travis.yml ./gradlew:許可が拒否されました

既存のAndroidプロジェクト呼び出しにTravis CIを使用する

$ ./gradlew build connectedCheck

私はこのエラーを受け取ります:

/home/travis/build.sh: line 45: ./gradlew: Permission denied
The command "./gradlew build connectedCheck" failed and exited with 126 during .
112

これは、unix gradlewスクリプトのexec-permissionによって異なります。

コマンドを使用して修正できます:

git update-index --chmod=+x gradlew

問題を理解するためのちょっとした説明。
まず、以下を使用して権限を確認できます。

git ls-tree HEAD

表示されます:

100644 blob xxxxxxxxxxx gradlew

ご覧のとおり、ファイルには644の許可があります。

gradlewファイルの実行可能フラグを755に変更することで修正:

git update-index --chmod=+x gradlew

変更をコミットしてプッシュするだけです:

git commit -m "permission access for travis"

[master e80ab1b] gradlew permission access for travis
 1 file changed, 0 insertions(+), 0 deletions(-)
 mode change 100644 => 100755 gradlew

変更を確認するためにgit ls-treeを再度実行する最後のチェック:

git ls-tree HEAD

あなたが見ることができます:

100755 blob xxxxxxxxxxxxx   gradlew

この問題を解決する別の方法は、使用することです:

before_install:
 - chmod +x gradlew

この種のソリューションは、gitリポジトリのパーミッションを変更するのではなく、実行中のパーミッションランタイムを変更するだけです。

233
script:
 - chmod +x ./gradlew build connectedCheck

皆さんありがとう。このコードは利用可能です。主な焦点はchmod +xにあります

4
Allen.Cai