Sử dụng Travis CI để gọi dự án Android hiện có
$ ./gradlew build connectedCheck
Tôi gặp lỗi này:
/home/travis/build.sh: line 45: ./gradlew: Permission denied
The command "./gradlew build connectedCheck" failed and exited with 126 during .
Sử dụng Travis CI để gọi dự án Android hiện có
$ ./gradlew build connectedCheck
Tôi gặp lỗi này:
/home/travis/build.sh: line 45: ./gradlew: Permission denied
The command "./gradlew build connectedCheck" failed and exited with 126 during .
Câu trả lời:
Nó phụ thuộc bởi quyền thực thi đối với gradlew
tập lệnh unix của bạn .
Nó có thể được sửa bằng lệnh:
git update-index --chmod=+x gradlew
Một chút mô tả để hiểu vấn đề.
Trước hết, bạn có thể kiểm tra quyền của mình bằng cách sử dụng:
git ls-tree HEAD
Bạn sẽ thấy:
100644 blob xxxxxxxxxxx gradlew
Như bạn có thể thấy tệp có quyền 644.
Khắc phục sự cố bằng cách đặt cờ thực thi trên tệp gradlew của bạn, thay đổi nó thành 755:
git update-index --chmod=+x gradlew
Chỉ cần cam kết và đẩy các thay đổi:
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
Lần kiểm tra cuối cùng chạy lại git ls-tree để xem thay đổi:
git ls-tree HEAD
Bạn có thể thấy:
100755 blob xxxxxxxxxxxxx gradlew
Một cách khác để giải quyết vấn đề này là sử dụng:
before_install:
- chmod +x gradlew
Loại giải pháp này không thay đổi quyền trong git repo của bạn mà chỉ thay đổi thời gian chạy quyền trong quá trình thực thi.
chmod
lệnh bổ sung trong các tập lệnh xây dựng vì 1) nó làm tăng thêm độ phức tạp không cần thiết 2) sẽ không hoạt động đối với các thành viên khác trong nhóm sao chép lại repo.