it-swarm.dev

الغرض من buildscript block في Gradle

أنا جديد على Gradle وأنا أقرأ الوثائق لكنني لا أفهم بعض أجزاء منها. أحد هذه الأجزاء متصل بـ buildscript block. ما هو الغرض منه؟

إذا احتاج البرنامج النصي للبناء إلى استخدام مكتبات خارجية ، فيمكنك إضافتها إلى classpath الخاص بالبرنامج النصي في البرنامج النصي للبناء نفسه. يمكنك القيام بذلك باستخدام أسلوب buildscript () ، بتمرير إغلاق يقوم بتعريف classpath script script للبناء.

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath group: 'commons-codec', name: 'commons-codec', version: '1.2'
  }
}

حسنا ولكن ما هو الفرق مع:

repositories {
  mavenCentral()
}
dependencies {
  compile group: 'commons-codec', name: 'commons-codec', version: '1.2'
}

على سبيل المثال ، لماذا من الضروري استخدام buildscript؟

189
Xelian

تحدد كتلة buildScript الإضافات وفئات المهام والفئات الأخرى المتاحة للاستخدام في بقية البرنامج النصي للبناء . بدون كتلة buildScript ، يمكنك استخدام كل ما يأتي مع Gradle خارج الصندوق. إذا أردت بالإضافة إلى ذلك استخدام مكونات إضافية أو فئات مهام أو فئات أخرى (في البرنامج النصي للبناء!) ، يجب عليك تحديد التبعيات المقابلة في كتلة buildScript.

147
Peter Niederwieser
  • يسرد المستوى العام dependencies و repositories الأقسام تبعيات المطلوبة لبناء المصدر وتشغيل المصدر الخاص بك وما إلى ذلك.
  • buildscript هو لملف build.gradle نفسه. لذلك ، قد يحتوي هذا على تبعيات لنقل إنشاء RPMs و Dockerfile وأية تبعيات أخرى لتشغيل المهام في كل build.gradle التابع
112
Ashish

إنني أقدر إجابة بيتر ... لكن لم يكن واضحًا على الفور ماذا يعني باقي نص الإنشاء كما تم التأكيد عليه في الإجابة وفي الوثائق.

عادةً ما يكون استخدام الوظائف التابعة للاستخدام في برنامج Java أو أي برنامج آخر قد تكتبه. لن يؤدي استخدام ميزة "جلب في الربيع" إلى استخدام البرنامج النصي للبناء ، ولكن في برنامج Java. وضعه في الإغلاق buildscript يضمن أن التبعيات متاحة للاستخدام داخل مبنى gradle build نفسه. ليس برنامج الإخراج.

61
Daniel Gerson

قسم التكوين "buildscript" مخصص لـ gradle نفسه (على سبيل المثال ، يتغير إلى مدى قدرة gradle على تنفيذ الإنشاء). لذلك سوف يشتمل هذا القسم عادة على المكوّن الإضافي Android Gradle.

6
Maulik Baraiya