বিল্ডসক্রিপ্ট এবং বিল্ডপ্রেডল এ সমস্ত প্রকল্পের মধ্যে পার্থক্য কী?


135

একটি বহু-প্রকল্পের গ্রেড বিল্ডে, কেউ আমাকে বলতে পারবেন যে "অলপ্রজেক্টগুলি" বিভাগ এবং "বিল্ডস্ক্রিপ্ট" এর মধ্যে পার্থক্যটি ঠিক কী? উভয় একটি repositoriesএবং dependenciesটাস্ক আছে। কি allprojectsআমার প্রকল্পের জন্য? কি হবে buildscript?

buildscript {  
     repositories {
         ...
     }
     dependencies {
         ...
     }
}

এবং

allprojects(subprojects) { 
     repositories {
         ...
     }
     dependencies {
         ...
     }
}

উত্তর:


137

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

" allprojects" বিভাগটি গ্র্যাডল দ্বারা নির্মিত মডিউলগুলির জন্য।

প্রায়শই সংগ্রহস্থল বিভাগ উভয়ের জন্য একই, কারণ উভয়ই সাধারণত তাদের (বা সম্ভবত মেভেন সেন্ট্রাল) জেনস্টার থেকে তাদের নির্ভরতা পাবে। তবে "নির্ভরতা" বিভাগটি আলাদা হবে।

সাধারণত "সমস্ত প্রকল্পগুলির" জন্য "নির্ভরতা" বিভাগটি খালি থাকে যেহেতু প্রতিটি মডিউলটির নির্ভরতা অনন্য এবং প্রতিটি মডিউলটির মধ্যে "build.gradle" ফাইলে থাকবে। যাইহোক, যদি মডিউলগুলির সমস্ত একই নির্ভরতা ভাগ করে নেয় তবে সেগুলি এখানে তালিকাভুক্ত হতে পারে।


আমাদের কি গ্রেড সংস্করণ নির্দিষ্ট করতে হবে?
ইগোরগানাপলস্কি 12'19

ব্যবহারকারী: 6998684 গ্রেডের সংস্করণটি পুরো প্রকল্পের জন্য প্রযোজ্য এবং এটি একটি ফাইলে ঘোষণা করা হয়েছে যা কিছুটা গোপন। "./Gradle/wrapper/gradle-wrapper.properties"
AndroidGuy

22

টিএল; ডিআর: buildscriptপ্লাগইনগুলি সন্ধানে সহায়তা করে, allprojectsসমস্ত প্রকল্পের জন্য প্রযোজ্য


https://docs.gradle.org/current/userguide/userguide_single.html#applyPluginBuildscript বলে

বাহ্যিক জার ফাইল হিসাবে প্রকাশিত বাইনারি প্লাগইনগুলি একটি প্রকল্পে বিল্ড স্ক্রিপ্ট শ্রেণিপথটিতে প্লাগইন যুক্ত করে প্লাগইন প্রয়োগ করে যুক্ত করা যেতে পারে।

সুতরাং আপনার যেমনbuildscript প্লাগিনগুলি সন্ধানের জন্য গ্রেডের প্রয়োজন for

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

সম্পর্কিতallprojects :

প্রজেক্ট এপিআই একটি সম্পত্তি সরবরাহ করে allprojectsযা বর্তমান প্রকল্প এবং এটির নীচে এর সমস্ত সাবজেক্টর সহ একটি তালিকা দেয় returns যদি আপনি allprojectsএকটি ক্লোজারের সাথে কল করেন, বন্ধের বিবৃতিগুলি সংশ্লিষ্ট প্রকল্পগুলিতে অর্পণ করা হবে allprojects


আমার কাছে, অ্যান্ড্রয়েড বাস্তুতন্ত্রের সূচনা হিসাবে, এর অর্থ কিছুই নেই। আমাদের নির্ভরতা রাখার দরকার কোথায়? আমরা কি "বিল্ডস্ক্রিপ্ট" মুছতে পারি?
মার্টিন বার্গার

@ মার্টিনবার্গার: আপনার নির্ভরতাগুলি মডিউলটির মধ্যে রাখুন build.gradle, এটি build.gradleউপরের একটি ডিরেক্টরি নয়, যা এই প্রশ্নের সাথে সম্পর্কিত
সার্ভ-ইন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.