Gradle হল একটি আধুনিক বিল্ড টুল যা Java, Groovy, Kotlin, এবং অন্যান্য ভাষার প্রোজেক্ট বিল্ড করতে ব্যবহৃত হয়। এটি অত্যন্ত নমনীয়, দ্রুত, এবং প্রোডাক্টিভ বিল্ড সিস্টেম প্রদান করে যা একাধিক ভাষা এবং ফ্রেমওয়ার্কে কাজ করতে পারে। Gradle এর দুটি মূল উপাদান হল Build Scripts এবং Tasks। এই দুটি উপাদান আপনাকে বিল্ড প্রক্রিয়া কনফিগার করতে, পরিচালনা করতে এবং এক্সিকিউট করতে সাহায্য করে।
Build Scripts হল স্ক্রিপ্ট ফাইল যা Gradle বিল্ড প্রক্রিয়া কনফিগার করার জন্য ব্যবহৃত হয়। সাধারণত, Gradle বিল্ড স্ক্রিপ্টগুলি Groovy বা Kotlin DSL (Domain-Specific Language) ব্যবহার করে লেখা হয়। Gradle এর বিল্ড স্ক্রিপ্টগুলি build.gradle
(Groovy DSL) অথবা build.gradle.kts
(Kotlin DSL) ফাইলের মাধ্যমে তৈরি করা হয়।
Groovy DSL তে Gradle স্ক্রিপ্টের মধ্যে প্লাগইন, ডিপেন্ডেন্সি, টাস্ক, এবং অন্যান্য কনফিগারেশন সন্নিবেশিত থাকে।
plugins {
id 'java'
}
group = 'com.example'
version = '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework:spring-core:5.3.10'
}
task hello {
doLast {
println 'Hello, Gradle!'
}
}
এখানে:
plugins
ব্লকটি Gradle প্লাগইন কনফিগার করে (এখানে Java প্লাগইন যোগ করা হয়েছে)।repositories
ব্লকটি ডিপেন্ডেন্সি ফেচ করার জন্য রেপোজিটরি (যেমন Maven Central) নির্ধারণ করে।dependencies
ব্লকটি প্রোজেক্টের জন্য ডিপেন্ডেন্সি ডিক্লেয়ার করে (যেমন Spring Core এর একটি ভার্সন)।task hello
একটি কাস্টম টাস্ক তৈরি করে, যা doLast
ব্লকের মধ্যে কার্যকর হয় এবং 'Hello, Gradle!' প্রিন্ট করে।Kotlin DSL তে Gradle স্ক্রিপ্টগুলি Kotlin ভাষায় লেখা হয়, যা Groovy এর তুলনায় আরও স্ট্যাটিক এবং টাইপ সেফ।
plugins {
kotlin("jvm") version "1.5.21"
}
repositories {
mavenCentral()
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib")
}
tasks.register("hello") {
doLast {
println("Hello, Gradle!")
}
}
এখানে:
plugins
ব্লকটি Kotlin প্লাগইন যোগ করে।repositories
ব্লকটি ডিপেন্ডেন্সি রেপোজিটরি নির্ধারণ করে।dependencies
ব্লকটি প্রোজেক্টের জন্য ডিপেন্ডেন্সি নির্ধারণ করে।tasks.register("hello")
একটি কাস্টম টাস্ক তৈরি করে যা 'Hello, Gradle!' প্রিন্ট করে।Tasks হল Gradle এর সবচেয়ে গুরুত্বপূর্ণ অংশ। এটি আপনার বিল্ড প্রক্রিয়াকে একাধিক স্টেপে ভাগ করে, যা সম্পন্ন হওয়ার পর আগের স্টেপে নির্ধারিত কাজগুলো পরবর্তী স্টেপে প্রক্রিয়া করতে সহায়তা করে। একেকটি task বিভিন্ন বিল্ড অপারেশন বা কার্যক্রম যেমন: কম্পাইল, প্যাকেজিং, টেস্টিং ইত্যাদি সম্পাদন করতে ব্যবহৃত হয়।
doLast {}
বা doFirst {}
ব্লক ব্যবহার করে task এর কার্যক্রম (action) কনফিগার করা হয়।Gradle কিছু predefined tasks দেয় যা আপনাকে সাধারণ বিল্ড কার্যক্রম যেমন compile
, test
, build
ইত্যাদি চালাতে সাহায্য করে। উদাহরণস্বরূপ:
build
: প্রোজেক্ট বিল্ড করতে ব্যবহৃত একটি task।test
: টেস্ট চালানোর জন্য ব্যবহৃত task।clean
: পূর্বের বিল্ডের আউটপুট পরিষ্কার করতে ব্যবহৃত task।Gradle এ আপনি আপনার নিজস্ব কাস্টম টাস্ক তৈরি করতে পারেন, যার মাধ্যমে নির্দিষ্ট কার্যক্রম সম্পন্ন করা হয়।
task hello {
doLast {
println 'Hello, this is a custom task!'
}
}
task goodbye {
doLast {
println 'Goodbye, Gradle!'
}
}
hello.finalizedBy(goodbye) // goodbye task will run after hello task
এখানে:
hello
নামক একটি কাস্টম টাস্ক তৈরি করা হয়েছে যা 'Hello, this is a custom task!' প্রিন্ট করবে।goodbye
টাস্ক hello
টাস্কের পরে চলবে, কারণ hello.finalizedBy(goodbye)
ব্যবহার করা হয়েছে।Gradle এর মধ্যে আপনি টাস্কের মধ্যে নির্ভরতা তৈরি করতে পারেন, যেমন একটি টাস্ক অন্য টাস্ক সম্পন্ন হওয়ার পর চালানো হয়।
task compileJava {
doLast {
println 'Compiling Java source code...'
}
}
task compileResources {
doLast {
println 'Compiling resources...'
}
}
compileJava.dependsOn compileResources // compileJava will run after compileResources
এখানে, compileJava
টাস্কটি compileResources
টাস্কের উপর নির্ভরশীল, তাই compileResources
আগে চালানো হবে।
build.gradle
বা build.gradle.kts
ফাইল হিসেবে থাকে।Groovy তে Gradle ব্যবহার করে আপনি সহজেই বিল্ড স্ক্রিপ্ট তৈরি করতে পারেন এবং টাস্কগুলিকে কাস্টমাইজ ও নিয়ন্ত্রণ করতে পারেন, যার ফলে সফটওয়্যার ডেভেলপমেন্ট এবং ডিপ্লয়মেন্ট আরও দ্রুত ও কার্যকর হয়।
common.read_more