একটি বহু-মডিউল প্রকল্পের একটি প্রধান মডিউল এবং অনেকগুলি সাবমডিউল রয়েছে। এটির এই লেআউটটি রয়েছে:
(root)
+- settings.gradle
+- build.gradle # optional (commonly present)
+- gradle.properties # optional
+-- buildSrc/ # optional
| +- build.gradle
| +-- src/...
+-- my-gradle-stuff/ # optional
| +- utils.gradle # optional
+-- sub-a/
| +- build.gradle
| +- src/
+-- sub-b/
+- build.gradle
+- src/
সাবমোডিয়ালগুলি সাবফোল্ডারগুলিতে আরও গভীরতর অবস্থিত হতে পারে তবে সেটিংস এড্রেডলে কোড পরিবর্তন না করে তাদের নাম এই জাতীয় ফোল্ডারের নাম অন্তর্ভুক্ত করবে।
settings.gradle
সেটিংস.gradle এর মূল ভূমিকা হ'ল সমস্ত অন্তর্ভুক্ত সাবমডিউলগুলি সংজ্ঞায়িত করা এবং মডিউলগুলির একটি গাছের ডিরেক্টরি মূল চিহ্নিত করা, যাতে আপনি settings.gradleএকটি মাল্টি-মডিউল প্রকল্পে কেবল একটি ফাইল রাখতে পারেন ।
rootProject.name = 'project-x'
include 'sub-a', 'sub-b'
সেটিংস ফাইলটি গ্রোভিতেও লেখা হয় এবং সাব-মডুল লুকটি কাস্টমাইজ করা যায়।
build.gradle
মডিউল প্রতি এই জাতীয় একটি ফাইল রয়েছে, এটিতে এই মডিউলটির জন্য বিল্ড যুক্তি রয়েছে।
ইন build.gradleফাইল প্রধান মডিউল ব্যবহার করতে পারেন allprojects {}বাsubprojects {} অন্যান্য সকল মডিউল জন্য সেটিংস নির্ধারণ করার।
ইন build.gradlesubmodules এর ফাইল, আপনি ব্যবহার করতে পারেনcompile project(':sub-a') এক submodule অন্যান্য উপর নির্ভর করতে পারেন।
গ্রেড.প্রোপার্টি
এটি alচ্ছিক, এর মূল উদ্দেশ্য হ'ল গ্রেড নিজেই চালানোর জন্য স্টার্টআপ বিকল্পগুলি সরবরাহ করা, যেমন
org.gradle.jvmargs=-Xmx=... -Dfile.encoding=UTF-8 ...
org.gradle.configureondemand=true
এই মানগুলি কোনও ফাইল দ্বারা USER_HOME/.gradle/gradle.propertiesওভাররাইড করা যায় এবং গ্রেড কমান্ড লাইন আর্গুমেন্ট দ্বারা ওভাররাইড করা যায়। এছাড়াও এই ফাইলটিতে systemProp.উপসর্গ হিসাবে ব্যবহারের জন্য পরিবেশের ভেরিয়েবলগুলি সেট করা সম্ভব ।
এই ফাইলের যে কোনও সম্পত্তি যেকোন বিল্ড.gradle এ ব্যবহার করা যেতে পারে, তাই কিছু প্রকল্প নির্ভরতা সংস্করণ রাখে বা তথ্য প্রকাশ করে gradle.propertiesতবে এটি সম্ভবত এই ফাইলটির অপব্যবহার।
আমার-গ্রেডেল-স্টাফ / ব্যবহারকারীর.gradle
(ফোল্ডার বা ফাইলের যে কোনও নামই সম্ভব)) সংজ্ঞাটি পুনরায় ব্যবহার করতে আপনি অতিরিক্ত কাস্টম গ্রেড ফাইল সংজ্ঞায়িত করতে পারেন এবং সেগুলি মাধ্যমে অন্যান্য গ্রেড ফাইলগুলিতে অন্তর্ভুক্ত করতে পারেন
apply from: "$rootDir/gradle/utils.gradle"
এটি স্থাপন করার জন্য অন্যান্য জায়গা হতে পারে src/gradleবাsrc/build/gradle
buildSrc / ...
এই ফোল্ডারটি বিশেষ, এটি নিজের মধ্যে পৃথক গ্রেডেল প্রকল্পের মতো। এটি অন্য কিছু করার আগে নির্মিত এবং অন্য কোনও গ্রেড ফাইল ব্যবহার করার জন্য এটি ফাংশন সরবরাহ করতে পারে। প্রযুক্তিগত কারণে, এই ফোল্ডারটির উল্লেখগুলির জন্য আইডিই সমর্থন একাধিক থেকে সাধারণ কোড বের করার যে কোনও উপায়ের চেয়ে অনেক ভাল কাজ করেbuild.gradle ফাইল থেকে পৃথক স্থানে ।
আপনি প্লাগইন লিখতে এবং স্থাপনের পরিবর্তে জাভা, গ্রোভি বা কোটলিনে জটিল কাস্টম বিল্ড লজিক সংজ্ঞায়িত করতে পারেন। এটি আপনার কাস্টম বিল্ড কোডকে ইউনিট-টেস্টিংয়ের জন্যও কার্যকর, কারণ আপনি ইউনিট পরীক্ষা করতে পারেন। উত্স ফোল্ডার কাঠামোটি buildSrcকোনও জাভা / গ্রোভি / কোটলিন প্রকল্পের মতো মানিয়ে নেওয়া যেতে পারে।