Gradle এর মাধ্যমে Build Automation
Gradle হলো একটি শক্তিশালী Build Automation Tool, যা Java, Groovy, Kotlin, এবং অন্যান্য ভাষার প্রজেক্টগুলো সহজে বিল্ড, ডিপ্লয় এবং ম্যানেজ করতে সহায়তা করে। Gradle এর ফ্লেক্সিবল এবং অত্যাধুনিক স্ট্রাকচার একে অত্যন্ত জনপ্রিয় করেছে। Maven এবং Ant এর মতো অন্যান্য বিল্ড টুলের তুলনায় Gradle অনেক বেশি দ্রুত এবং কাস্টমাইজেবল।
Gradle এর DSL (Domain-Specific Language) সিনট্যাক্সের জন্য Groovy বা Kotlin ব্যবহার করা হয়, যা বিল্ড স্ক্রিপ্ট তৈরি করা এবং পড়া সহজ করে তোলে।
Gradle এর মূল বৈশিষ্ট্যসমূহ
- ডিপেনডেন্সি ম্যানেজমেন্ট: Gradle Maven এবং Ivy রিপোজিটরি থেকে ডিপেনডেন্সি ম্যানেজ করতে পারে।
- ইনক্রিমেন্টাল বিল্ড: Gradle পরিবর্তিত ফাইলগুলোকে টার্গেট করে, যা সময় সাশ্রয় করে।
- স্কেলেবিলিটি: বড় প্রজেক্টগুলির জন্য Gradle সহজেই স্কেল করা যায়।
- কাস্টমাইজেশন: Gradle বিল্ড প্রসেসকে সহজেই কাস্টমাইজ করার সুবিধা প্রদান করে।
- মাল্টি-প্রজেক্ট বিল্ড: Gradle অনেকগুলো সাব-প্রজেক্টকে একসঙ্গে বিল্ড করতে পারে।
Gradle সেটআপ এবং ইনস্টলেশন
Gradle ইনস্টল করতে, Gradle এর অফিসিয়াল সাইট থেকে Gradle ডাউনলোড করে PATH এ যুক্ত করতে হবে অথবা SDKMAN ব্যবহার করে Gradle ইনস্টল করা যায়।
SDKMAN দিয়ে Gradle ইনস্টল করা
sdk install gradleইনস্টলেশন সম্পন্ন হলে নিচের কমান্ডটি চালিয়ে ইনস্টলেশন পরীক্ষা করা যেতে পারে:
gradle -vGradle বিল্ড স্ক্রিপ্টের ধারণা
Gradle বিল্ড স্ক্রিপ্ট সাধারণত build.gradle নামে থাকে এবং এটি Groovy বা Kotlin DSL এ লেখা হয়। Gradle স্ক্রিপ্টে বিভিন্ন টাস্ক এবং ডিপেনডেন্সি সংজ্ঞায়িত করা হয় যা প্রজেক্ট বিল্ডের জন্য প্রয়োজন।
Gradle বিল্ড ফাইলের উদাহরণ
// build.gradle
plugins {
id 'java'
}
group 'com.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework:spring-core:5.3.9'
testImplementation 'junit:junit:4.13.2'
}
test {
useJUnitPlatform()
}Gradle টাস্ক (Task)
Gradle এর মূল বিল্ডিং ব্লক হলো টাস্ক। প্রতিটি টাস্কে একটি নির্দিষ্ট কাজ সম্পন্ন হয়। উদাহরণস্বরূপ, compileJava টাস্ক সোর্স কোড কম্পাইল করে এবং test টাস্ক টেস্ট চালায়।
কাস্টম টাস্ক তৈরি
Gradle এ কাস্টম টাস্ক তৈরি করা খুবই সহজ।
task hello {
doLast {
println 'Hello, Gradle!'
}
}এই টাস্কটি gradle hello কমান্ড ব্যবহার করে চালানো যাবে এবং এটি "Hello, Gradle!" প্রিন্ট করবে।
Gradle ডিপেনডেন্সি ম্যানেজমেন্ট
Gradle এর ডিপেনডেন্সি ম্যানেজমেন্ট সিস্টেম অত্যন্ত শক্তিশালী। Gradle Maven Central, JCenter, এবং Ivy রিপোজিটরি থেকে ডিপেনডেন্সি নিয়ে আসতে পারে।
ডিপেনডেন্সি সংজ্ঞায়ন
dependencies {
implementation 'org.springframework:spring-core:5.3.9'
testImplementation 'junit:junit:4.13.2'
}- implementation: রানটাইমে প্রয়োজনীয় ডিপেনডেন্সি।
- testImplementation: টেস্টের জন্য প্রয়োজনীয় ডিপেনডেন্সি।
লোকাল ডিপেনডেন্সি যুক্ত করা
লোকাল লাইব্রেরি ব্যবহার করতে files() মেথড ব্যবহার করা যায়।
dependencies {
implementation files('libs/local-library.jar')
}মাল্টি-প্রজেক্ট বিল্ড
Gradle এর মাধ্যমে একটি মূল প্রজেক্টে একাধিক সাব-প্রজেক্ট বিল্ড করা যায়। প্রতিটি সাব-প্রজেক্টের জন্য আলাদা বিল্ড স্ক্রিপ্ট থাকা সম্ভব এবং মূল প্রজেক্ট তাদেরকে সংহত করতে পারে।
মাল্টি-প্রজেক্ট বিল্ড কনফিগারেশন
প্রথমে প্রজেক্টের মূল settings.gradle ফাইলে সব সাব-প্রজেক্ট উল্লেখ করতে হবে।
// settings.gradle
rootProject.name = 'MultiProjectExample'
include 'subproject1', 'subproject2'প্রতিটি সাব-প্রজেক্টের জন্য আলাদা build.gradle ফাইল থাকা উচিত, যাতে তাদের নিজস্ব টাস্ক এবং ডিপেনডেন্সি থাকে।
// subproject1/build.gradle
plugins {
id 'java'
}
dependencies {
implementation project(':subproject2')
}বিল্ট-ইন টাস্কসমূহ
Gradle কিছু বিল্ট-ইন টাস্ক সরবরাহ করে, যেমন build, clean, test, এবং assemble। এই টাস্কগুলির মাধ্যমে বিভিন্ন বিল্ড পর্যায় সম্পন্ন করা যায়।
- build: প্রজেক্ট কম্পাইল, টেস্ট, এবং প্যাকেজ করে।
- clean: পূর্ববর্তী বিল্ড আউটপুট মুছে ফেলে।
- test: টেস্ট চালায়।
- assemble: আউটপুট ফাইল তৈরি করে, তবে টেস্ট চালায় না।
Gradle Wrapper
Gradle Wrapper ব্যবহার করে প্রজেক্টে নির্দিষ্ট ভার্সনের Gradle ইনস্টল করা যায় এবং এটি নতুন ডেভেলপারদের সিস্টেমে Gradle ইনস্টলেশন ছাড়াই প্রজেক্ট রান করার সুযোগ দেয়।
Gradle Wrapper যোগ করা
gradle wrapperএই কমান্ডটি চালালে প্রজেক্টে gradlew এবং gradlew.bat নামে দুটি ফাইল তৈরি হবে, যা ক্রস-প্ল্যাটফর্ম Gradle কমান্ড হিসাবে কাজ করবে।
Gradle Wrapper দিয়ে বিল্ড করা
./gradlew build # Linux or Mac
gradlew build # WindowsGradle Wrapper নির্দিষ্ট ভার্সনের Gradle ব্যবহার করে প্রজেক্ট বিল্ড করতে সক্ষম।
সারসংক্ষেপ
Gradle একটি শক্তিশালী Build Automation টুল, যা সহজেই Java, Groovy, Kotlin এবং অন্যান্য ভাষার প্রজেক্ট বিল্ড করতে সহায়তা করে। Gradle এর সাহায্যে ডিপেনডেন্সি ম্যানেজমেন্ট, টাস্ক তৈরি, মাল্টি-প্রজেক্ট বিল্ড, এবং বিল্ড কনফিগারেশন খুবই সহজে করা যায়। Gradle Wrapper নতুন ডেভেলপারদের জন্য ইনস্টলেশন ছাড়াই প্রজেক্ট রান করার সুবিধা দেয়। এইসব বৈশিষ্ট্যের কারণে Gradle Build Automation এর জন্য অত্যন্ত জনপ্রিয় এবং কার্যকরী একটি টুল।
Read more