অ্যাপাচি আইভি (Apache Ivy) একটি ডিপেনডেন্সি ম্যানেজমেন্ট টুল যা Java প্রোজেক্টে ব্যবহৃত লাইব্রেরি এবং ডিপেনডেন্সি ম্যানেজমেন্ট সহজ করে। যখন আপনি আপনার প্রোজেক্টের ডিপেনডেন্সি কনফিগার করেন, তখন আপনি হয়তো কিছু নির্দিষ্ট ডিপেনডেন্সি বাদ দিতে চাইবেন। এই প্রক্রিয়াটিকে Exclude Rules বলা হয়, যেখানে আপনি কোনো নির্দিষ্ট ডিপেনডেন্সি বা তার নির্দিষ্ট সংস্করণ বাদ দিতে পারেন। এটি বিশেষভাবে প্রয়োজনীয় যখন আপনার প্রোজেক্টের একটি লাইব্রেরি অন্য লাইব্রেরির কিছু নির্দিষ্ট সংস্করণ বা ডিপেনডেন্সি ব্যবহার করতে চায় যা আপনার প্রোজেক্টের সাথে সামঞ্জস্যপূর্ণ নয়।
আইভি "exclude" নিয়মের মাধ্যমে এটি সম্ভব করে তোলে। এই নিয়মটি ব্যবহার করে আপনি নির্দিষ্ট লাইব্রেরি, ভার্সন, অথবা ডিপেনডেন্সি ছেঁকে বাদ দিতে পারেন।
Exclude Rules ব্যবহার করার মাধ্যমে আপনি আপনার প্রোজেক্টের ডিপেনডেন্সি গ্রাফ থেকে কিছু নির্দিষ্ট লাইব্রেরি বা ডিপেনডেন্সি বাদ দিতে পারেন। আইভি স্বয়ংক্রিয়ভাবে ডিপেনডেন্সি রেজলভ করার সময়ে যদি কোনো লাইব্রেরি কোনো অপর্যাপ্ত বা অপ্রয়োজনীয় ডিপেনডেন্সি আনে, তবে আপনি সেটি বাদ দিতে পারেন।
আইভি আপনাকে একাধিক exclusion নিয়ম বা "exclude" যুক্ত করার সুবিধা দেয়, যা নির্দিষ্ট ডিপেনডেন্সি বা তার নির্দিষ্ট সংস্করণকে বাদ দিতে সাহায্য করে।
একটি ডিপেনডেন্সি এভাবে নির্ধারণ করা হয় যাতে কিছু নির্দিষ্ট ডিপেনডেন্সি বাদ দেওয়া যায়। নিচে একটি উদাহরণ দেওয়া হলো, যেখানে ডিপেনডেন্সি এক্সক্লুড করা হচ্ছে।
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.10">
<exclude org="org.slf4j" name="slf4j-api"/>
</dependency>
</dependencies>
এখানে:
commons-lang3
লাইব্রেরির ডিপেনডেন্সি slf4j-api
লাইব্রেরিটি এক্সক্লুড করা হয়েছে।org.slf4j:slf4j-api
লাইব্রেরিটি commons-lang3
লাইব্রেরির ডিপেনডেন্সি থেকে বাদ দেওয়া হয়েছে।<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.10">
<exclude org="org.slf4j" name="slf4j-api" rev="1.7.2"/>
</dependency>
</dependencies>
এখানে:
commons-lang3
লাইব্রেরি থেকে slf4j-api
লাইব্রেরির সংস্করণ 1.7.2
এক্সক্লুড করা হয়েছে।conf
অপশনconf
অপশনটি ব্যবহার করে আপনি কোন কনফিগারেশন (যেমন compile
, runtime
, test
) এর জন্য ডিপেনডেন্সি এক্সক্লুড করতে পারেন। এটি বিশেষভাবে উপকারী যখন আপনি ডিপেনডেন্সির নির্দিষ্ট কনফিগারেশনে exclusion প্রয়োগ করতে চান।
<dependency org="org.apache.commons" name="commons-lang3" rev="3.10">
<exclude org="org.slf4j" name="slf4j-api" conf="compile"/>
</dependency>
এখানে, slf4j-api
লাইব্রেরিটি শুধুমাত্র compile
কনফিগারেশন থেকে এক্সক্লুড হবে।
module
অপশনএই অপশনটি ব্যবহার করে আপনি নির্দিষ্ট মডিউল বা লাইব্রেরি এক্সক্লুড করতে পারেন। যেমন কোনো নির্দিষ্ট মডিউলের ডিপেনডেন্সি বাদ দিতে চাইলে আপনি module
অপশন ব্যবহার করবেন।
<dependency org="org.apache.commons" name="commons-lang3" rev="3.10">
<exclude module="commons-logging"/>
</dependency>
এখানে, commons-logging
মডিউলটি এক্সক্লুড করা হয়েছে, যাতে এটি আপনার প্রোজেক্টের ডিপেনডেন্সি গ্রাফে না আসে।
type
অপশনtype
অপশনটি ব্যবহার করে আপনি নির্দিষ্ট ফাইল টাইপ বা ডিপেনডেন্সি ধরনের exclusion করতে পারেন। এটি খুবই উপকারী যখন আপনি বিশেষ কোনো ফাইল বা এক্সটেনশন বাদ দিতে চান।
<dependency org="org.apache.commons" name="commons-lang3" rev="3.10">
<exclude type="jar"/>
</dependency>
এখানে, commons-lang3
লাইব্রেরির jar
ফাইল টাইপ এক্সক্লুড করা হয়েছে।
নিচে একটি পূর্ণাঙ্গ উদাহরণ দেওয়া হলো যেখানে একাধিক exclusion নিয়ম প্রয়োগ করা হয়েছে:
<ivy-module version="2.0">
<info organisation="com.example" module="my-project" revision="1.0.0"/>
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.10">
<!-- Exclude slf4j-api version 1.7.2 from commons-lang3 -->
<exclude org="org.slf4j" name="slf4j-api" rev="1.7.2"/>
<!-- Exclude commons-logging module -->
<exclude module="commons-logging"/>
</dependency>
</dependencies>
</ivy-module>
এখানে:
slf4j-api
লাইব্রেরির 1.7.2
সংস্করণ এবং commons-logging
মডিউল এক্সক্লুড করা হয়েছে।অ্যাপাচি আইভি (Apache Ivy) ডিপেনডেন্সি ম্যানেজমেন্টে exclude
রুলস ব্যবহার করে আপনি অপ্রয়োজনীয় বা অযাচিত ডিপেনডেন্সি বাদ দিতে পারেন। এটি বিভিন্ন উপায়ে ডিপেনডেন্সি এক্সক্লুড করতে সহায়তা করে, যেমন লাইব্রেরি, সংস্করণ, মডিউল, এবং ফাইল টাইপের মাধ্যমে। এক্সক্লুড নিয়মগুলো ব্যবহার করে আপনি আপনার প্রোজেক্টের ডিপেনডেন্সি গ্রাফে অপ্রয়োজনীয় বা অযাচিত ডিপেনডেন্সি বাদ দিয়ে, প্রোজেক্টের পারফরম্যান্স এবং নির্ভরযোগ্যতা বৃদ্ধি করতে পারেন।
common.read_more