Câu trả lời:
Sự khác biệt nằm ở thực tế ./gradlew
cho thấy bạn đang sử dụng trình bao bọc lớp. Trình bao bọc nói chung là một phần của dự án và nó tạo điều kiện cho việc cài đặt lớp. Nếu bạn đang sử dụng gradle mà không có trình bao bọc, bạn sẽ phải cài đặt thủ công - ví dụ, trên mac brew install gradle
và sau đó gọi gradle bằng gradle
lệnh. Trong cả hai trường hợp bạn đang sử dụng gradle, nhưng trước đây thuận tiện hơn và đảm bảo tính nhất quán của phiên bản trên các máy khác nhau.
Mỗi Wrapper được gắn với một phiên bản Gradle cụ thể, vì vậy khi bạn lần đầu tiên chạy một trong các lệnh trên cho một phiên bản Gradle nhất định, nó sẽ tải xuống bản phân phối Gradle tương ứng và sử dụng nó để thực hiện quá trình xây dựng.
Điều này không chỉ có nghĩa là bạn không phải tự cài đặt Gradle mà còn chắc chắn sử dụng phiên bản Gradle mà bản dựng được thiết kế cho. Điều này làm cho các bản dựng lịch sử của bạn đáng tin cậy hơn
Đọc thêm tại đây - https://docs.gradle.org/civerse/userguide/gradle_wrapper.html
Ngoài ra, Udacity có một video gọn gàng, cao cấp giải thích khái niệm về trình bao bọc lớp - https://www.youtube.com/watch?v=1aA949H-shk
gradlew
là một trình bao bọc (w - ký tự) sử dụng gradle
.
Dưới mui xe gradlew
thực hiện ba điều chính:
gradle
phiên bản chính xácgradle
nhiệm vụSử dụng Gradle Wrapper, chúng tôi có thể phân phối / chia sẻ dự án cho mọi người để sử dụng cùng một phiên bản và chức năng của Gradle (biên dịch, xây dựng, cài đặt ...) ngay cả khi nó chưa được cài đặt.
Để tạo một trình bao bọc chạy:
gradle wrapper
Lệnh này tạo ra:
gradle-wrapper.properties
sẽ chứa thông tin về phân phối Gradle