ความแตกต่างระหว่างการใช้ gradlew และ Gradle


229

อะไรคือความแตกต่างระหว่างการใช้งานgradlewและgradleหรือเหมือนกัน?

คำตอบ:


225

ความแตกต่างอยู่ที่ความจริงที่./gradlewระบุว่าคุณกำลังใช้ wrapper gradle wrapper เป็นส่วนหนึ่งของโครงการและอำนวยความสะดวกในการติดตั้ง gradle หากคุณใช้ gradle โดยไม่มี wrapper คุณจะต้องติดตั้งด้วยตนเองเช่นบน mac brew install gradleแล้วเรียก gradle โดยใช้gradleคำสั่ง ในทั้งสองกรณีคุณกำลังใช้การไล่ระดับสี แต่แบบเดิมจะสะดวกกว่าและทำให้มั่นใจได้ว่าเวอร์ชั่นที่สอดคล้องกันในเครื่องต่างๆ

Wrapper แต่ละอันเชื่อมโยงกับ Gradle รุ่นที่เฉพาะเจาะจงดังนั้นเมื่อคุณเรียกใช้คำสั่งใดคำสั่งหนึ่งข้างต้นสำหรับรุ่น Gradle ที่กำหนดมันจะดาวน์โหลดการกระจาย Gradle ที่สอดคล้องกันและใช้มันเพื่อดำเนินการสร้าง

สิ่งนี้ไม่เพียงหมายความว่าคุณไม่ต้องติดตั้ง Gradle ด้วยตนเอง แต่คุณต้องแน่ใจว่าใช้ Gradle รุ่นที่ build ได้รับการออกแบบมา สิ่งนี้ทำให้งานสร้างในอดีตของคุณน่าเชื่อถือยิ่งขึ้น

อ่านเพิ่มเติมได้ที่นี่ - https://docs.gradle.org/current/userguide/gradle_wrapper.html

นอกจากนี้ Udacity ยังมีวิดีโอระดับสูงที่เรียบร้อยซึ่งอธิบายถึงแนวคิดของ wrapper gradle - https://www.youtube.com/watch?v=1aA949H-shk


8
บางทีฉันกำลังอ่านผิด แต่ดูเหมือนธงสีแดงให้ฉัน ดูเหมือนว่า Gradle จะไม่สามารถใช้งานร่วมกับระบบย้อนหลังได้หรือพัฒนาอย่างรวดเร็วมาก (และไม่เสถียร) เกิดอะไรขึ้นกับเซิร์ฟเวอร์ CI ที่ไม่สามารถเข้าถึงอินเทอร์เน็ตได้
The Impaler

@TheImpaler ฉันคิดว่าคุณต้องติดตั้ง Gradle ทุกเวอร์ชันตามที่ Wrapper ต้องการหากมันมีการเชื่อมต่ออินเทอร์เน็ต
Ruslan

46

gradlewเป็นเสื้อคลุม (w - ตัวอักษร) gradleที่ใช้

ภายใต้ประทุนgradlewทำสิ่งสำคัญสามประการ:

  • ดาวน์โหลดและติดตั้งgradleรุ่นที่ถูกต้อง
  • แยกอาร์กิวเมนต์
  • โทรหาgradleงาน

การใช้ Gradle Wrapper เราสามารถแจกจ่าย / แบ่งปันโปรเจ็กต์ให้ทุกคนได้ใช้เวอร์ชั่นเดียวกันและฟังก์ชั่นของ Gradle (คอมไพล์, สร้าง, ติดตั้ง ... ) แม้ว่ามันจะยังไม่ได้ติดตั้งก็ตาม

ในการสร้างการเรียกใช้ wrapper:

gradle wrapper

คำสั่งนี้สร้าง:

gradle-wrapper.properties จะมีข้อมูลเกี่ยวกับการกระจาย Gradle

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.