গ্রেডলে বিল্ডস্ক্রিপ্ট ব্লকের উদ্দেশ্য


235

আমি গ্র্যাডলে নতুন এবং আমি ডকুমেন্টেশন পড়ছি তবে এর কিছু অংশ আমি বুঝতে পারি না। এই অংশগুলির মধ্যে একটি buildscriptব্লকের সাথে যুক্ত । এর উদ্দেশ্য কী?

যদি আপনার বিল্ড স্ক্রিপ্টটির বাহ্যিক লাইব্রেরিগুলি ব্যবহার করার প্রয়োজন হয় তবে আপনি সেগুলি বিল্ড স্ক্রিপ্টের মধ্যেই স্ক্রিপ্টের ক্লাসপাথে যুক্ত করতে পারেন। আপনি বিল্ডস্ক্রিপ্ট () পদ্ধতিটি ব্যবহার করে এটি বন্ধের মধ্যে দিয়ে যা বিল্ড স্ক্রিপ্ট শ্রেণিবদ্ধ ঘোষণা করে।

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?


উত্তর:


178

buildScriptব্লক নির্ধারণ যা প্ল্যাগইন, টাস্ক ক্লাস, এবং অন্যান্য ক্লাসের ব্যবহারের জন্য উপলব্ধ বিল্ড স্ক্রিপ্ট বাকি । কোনও buildScriptব্লক ছাড়াই আপনি গ্রেডলের বাইরে যে বাক্সটি পাঠিয়েছেন তা ব্যবহার করতে পারেন। আপনি অতিরিক্তভাবে তৃতীয় পক্ষের প্লাগইন, টাস্ক ক্লাস বা অন্যান্য ক্লাস (বিল্ড স্ক্রিপ্টে) ব্যবহার করতে চান, আপনাকে buildScriptব্লকের সাথে সম্পর্কিত নির্ভরতা নির্দিষ্ট করতে হবে ।


2
আমি এম বুঝতে পারি না। আমি গ্রুপsample.infotask', name: 'infotask', version: '1.0' সহ একটি টাস্ক ক্লাস লিখেছি : এবং এটি স্থানীয় রেপোতে আপলোড করতে আপলোডআরচাইভস টাস্কটি ব্যবহার করুন ../lib ' অন্য প্রকল্পে আমি যদি আমার কাজটি ব্যবহার করি তবে অবশ্যই আমাকে লিখতে হবে: `বিল্ডস্ক্রিপ্ট {সংগ্রহশালা {মাভেন {url' ফাইল: ../ lib '}} নির্ভরতা {শ্রেণিপথ গোষ্ঠী:' নমুনা.infotask ', নাম:' infotask ', সংস্করণ:' 1.0 '} I আমি ঠিক আছি? আমাদের অবশ্যই বিল্ডস্ক্রিপ্ট ব্লক ব্যবহার করা উচিত ? আমি যখন স্থানীয় শিল্পকর্ম আপলোড করি তখন আমার মেশিনে জার থাকে। এবং কেবল গ্রেডলকে বলতে হবে কোথা থেকে এবং আমার ক্লাসপথে কী লাগাতে হবে এখানে বিশেষ কি?
জেলিয়ান

40
আপনার অবশ্যই একটি buildScriptব্লক ব্যবহার করতে হবে কারণ বাকি বিল্ড স্ক্রিপ্টটি বোঝার জন্য গ্রেডলের এই তথ্য দরকার । এজন্য আপনাকে একটি পৃথক চ্যানেলে ( buildScriptব্লক) এই তথ্য সরবরাহ করতে হবে । প্রযুক্তিগতভাবে বলতে গেলে, বিল্ড স্ক্রিপ্টের বাকী অংশগুলি সংকলন ও মূল্যায়ন করার জন্য গ্রেডলের এই তথ্য দরকার । হুডের নীচে যা ঘটে তা হ'ল গ্রেডল বিল্ড স্ক্রিপ্টকে দুটি স্ক্রিপ্টে ( buildScriptব্লক এবং অন্যান্য সমস্ত কিছু) আলাদা করে দেয় যাতে এটি তাদের আলাদাভাবে প্রক্রিয়া করতে পারে।
পিটার নিদারউইজার

1
অন্যান্য উত্তর পড়ার পরে আপনি যদি এই উত্তরগুলি পড়ে থাকেন তবে আপনি বুঝতে পারবেন যে পিটার কী বলতে চায় (এবং এটি বেশ সঠিক)। তবে দ্বিতীয় লাইন - "বিল্ডস্ক্রিপ্ট ব্লক ব্যতীত, আপনি গ্রেডলের সাথে জাহাজের যে জিনিসটি জাহাজগুলি বাইরে-বাক্সের বাইরে ব্যবহার করতে পারেন" - এটিই উত্তরগুলিকে অস্পষ্ট করে তোলে।
ডেক্সটার

কেবলমাত্র একটি দ্রুত নোট যা আমাকে পুরো বিষয়টি বুঝতে পেরেছিল। "বিল্ডস্ক্রিপ্ট" ব্যবহার করার সময় আপনি বলছেন যে বিল্ডস্ক্রিপ্ট within ... within এর মধ্যে যা কিছু নির্ভরতা জাভা / কোটলিন কোড / প্রোগ্রাম (বা আপনি যা ব্যবহার করছেন) দ্বারা ব্যবহৃত হয় না। তবে পরিবর্তে, এগুলি কেবল গ্রেড স্ক্রিপ্ট দ্বারা ব্যবহৃত হতে পারে। সুতরাং উদাহরণস্বরূপ আপনাকে এমন কিছু প্লাগইন ব্যবহার করতে হবে যা ডিফল্টরূপে সরবরাহ করা হয় না, তবে আপনি এটি বিল্ডস্ক্রিপ্ট {...} এ যুক্ত করুন এবং আপনি কেবল গ্রেড স্ক্রিপ্টগুলিতে এটি ব্যবহার করতে সক্ষম হবেন। আশা করি এটি সহায়তা করে
সিজারম্যাক্স

153
  • আপনার উত্স তৈরি এবং আপনার উত্স চালানোর জন্য প্রয়োজনীয় গ্লোবাল স্তর dependenciesএবং repositoriesবিভাগগুলি নির্ভরতাগুলি তালিকাভুক্ত করে etc.
  • buildscriptজন্য build.gradleফাইল নিজেই। সুতরাং, এতে আরপিএম তৈরির Dockerfileজন্য নির্ভরতা এবং সমস্ত নির্ভরশীল কাজগুলি চালনার জন্য অন্য কোনও নির্ভরতা থাকতে পারেbuild.gradle

4
গ্রেডে নিজেই সমস্ত এক্সটেনশানগুলি বিল্ডস্ক্রিপ্ট-> নির্ভরতাগুলির মাধ্যমে পাওয়া যায়, যা পরিবর্তে বিল্ডস্ক্রিপ্ট-> সংগ্রহস্থল বিভাগ থেকে ডাউনলোড হয়। বিল্ডস্ক্রিপ্ট ব্লক, সোর্স সংকলন ইত্যাদির মতো বিল্ড টাস্ক সম্পাদনের আগে প্রথমে (সিস্টেম প্রস্তুতির পর্ব তৈরি করুন) চালানো হয়
রাজা নগেন্দ্র কুমার

4
buildscriptআপনার বিল্ড স্ক্রিপ্টের জন্য কেবল নির্ভরতা
9

3
বিল্ডস্ক্রিপ্টটি নোড.জেজে ডেভডিপেন্ডেন্স, শীর্ষ স্তরের = নির্ভরতা।
জ্যাকব 10

67

আমি পিটারের উত্তরটির প্রশংসা করি ... তবে উত্তর ও ডকুমেন্টেশনে জোর দেওয়া বিল্ড স্ক্রিপ্টটি কী বোঝাতে চেয়েছিল তা আমার কাছে তাত্ক্ষণিকভাবে স্পষ্ট হয় নি ।

সাধারণত নির্ভরশীল কার্যকারিতা আনা জাভা প্রোগ্রামে ব্যবহার করা বা আপনি যে কোনও প্রোগ্রাম লিখতে পারেন। স্প্রিংয়ে আনা বলুন, বিল্ড স্ক্রিপ্টে ব্যবহার করা হবে না, তবে জাভা প্রোগ্রামে। এটিকে buildscriptবন্ধে রাখার বিষয়টি নিশ্চিত করে যে গ্রেড বিল্ডের মধ্যেই নির্ভরতাগুলি ব্যবহারের জন্য উপলব্ধ। আউটপুট প্রোগ্রাম নয়।


8

"বিল্ডস্ক্রিপ্ট" কনফিগারেশন বিভাগটি গ্রেড নিজেই (যেমন গ্রেড কিভাবে বিল্ড সম্পাদন করতে সক্ষম হয় তার পরিবর্তন) for সুতরাং এই বিভাগটি সাধারণত অ্যান্ড্রয়েড গ্রেডল প্লাগইন অন্তর্ভুক্ত করবে।


2

এটি কিছুটা উচ্চ স্তরের তবে আশা সাহায্য করে।

আমার জন্য, বিল্ডিং ব্লক , পদ্ধতি এবং কার্য কী তা বুঝতে শুরু করলেই স্পষ্ট পার্থক্যটি গঠন শুরু হয়েছিল । সিনট্যাক্সটি কেমন দেখাচ্ছে, আপনি সেগুলি কীভাবে কনফিগার করতে পারেন ইত্যাদি I তাই আমি আপনাকে এই সমস্তগুলি দিয়ে যাওয়ার পরামর্শ দিই। এর পরে, আপনি এই সিনট্যাক্সটি থেকে বোঝা শুরু করতে পারেন।

তারপরে বিল্ড.gradle ফাইলের মধ্যে আপনার কী থাকতে পারে তা জানতে, কীভাবে অবজেক্টটি বিল্ড.gradle (প্রকল্প শ্রেণীর উদাহরণ) এর ধরণটি কী তা জানা খুব গুরুত্বপূর্ণ। এর উত্তর দেবে যে 'বিল্ডস্ক্রিপ্ট' এবং অন্যান্যরা কোথা থেকে এসেছে। এবং আপনার ক্ষমতা / বৈশিষ্ট্যগুলি প্রসারিত করতে (আসুন অ্যান্ড্রয়েড বলি), দেখুন প্লাগইন কীভাবে সহায়তা করতে পারে।

সর্বশেষে তবে কমপক্ষে, এখানে একটি খুব ভাল টিউটোরিয়াল রয়েছে যা ক্লোজার, ডেলিগেটগুলি যা স্ক্রিপ্টটি বোঝার জন্য প্রয়োজনীয় ধারণাগুলি নিয়ে কথা বলে।


1

অ্যান্ড্রয়েড শীর্ষ-স্তরের গ্রেড ফাইল প্রদর্শন করে আরও কিছুটা ব্যাখ্যা।

buildscript {
    // this is where we are going to find the libraries defined in "dependencies block" at below
    repositories {
        google()
        jcenter()
        maven { url 'https://dl.bintray.com/kotlin/kotlin-eap' }
    }

    // everything listed in the dependencies is actually a plugin, which we'll do "apply plugin" in our module level gradle file.
    dependencies {
        classpath 'com.android.tools.build:gradle:3.4.2' // this is android gradle plugin
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // kotlin gradle plugin
    }
}

মডিউল স্তর গ্রেড ফাইল

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

"প্লাগইন" কী? এগুলি কেবল জাভা ক্লাস, যা প্লাগিন ইন্টারফেস প্রয়োগ করে। ইন্টারফেসের অধীনে, এটি বিভিন্ন পদ্ধতিতে একাধিক টাস্ক অবজেক্ট যুক্ত করতে একটি "প্রয়োগ" পদ্ধতি রয়েছে। টাস্ক এমন একটি শ্রেণি যেখানে আমরা কর্মপ্রবাহটি প্রয়োগ করতে পারি। উদাহরণস্বরূপ, বিল্ড টাস্কটিতে অ্যাপ্লিকেশনটি তৈরির প্রবাহ রয়েছে।

সুতরাং, বিল্ডস্ক্রিপ্ট কী করে? এটি কোথায় প্লাগিনগুলি সন্ধান করতে হবে তা নির্ধারণ করে। প্লাগইন কী করে? এটি একাধিক কাজকে অন্তর্ভুক্ত করে। টাস্ক কী করে? এটি আমাদের বিল্ড, ইনস্টল, লিন্ট ইত্যাদি সরবরাহ করে

আমার বুঝতে ভুল হতে পারে। আপনি যদি কোনও কিছু বিভ্রান্তিকর বলে মনে করেন তবে আমাকে সংশোধন করতে দ্বিধা করবেন না।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.