Travis.yml ./gradlew:アクセスが拒否されました


回答:


246

UNIX スクリプトへのexec-permissionによって異なりgradlewます。

次のコマンドを使用して修正できます。

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リポジトリの権限は変更されませんが、実行時の権限ランタイムが変更されるだけです。


2
出来た。私の場合は「before_script:」でそれを行いました。ありがとう!
Sudarshan Tanuku

1
スクリプトが適切な権限でgitにチェックインされない理由はありません(私は1754に行きます)。chmod1)不要な複雑さを追加する2)リポジトリを新たに複製する他のチームメンバーには機能しないため、ビルドスクリプトにコマンドを追加することは控えています。
アレックス、

ありがとう。それは私を助けました。
Dimitri de Jesus

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.