অ্যাপাচি আইভি (Apache Ivy) একটি ওপেন সোর্স ডিপেন্ডেন্সি ম্যানেজমেন্ট টুল যা মূলত জাভা প্রকল্পের ডিপেন্ডেন্সি ম্যানেজমেন্টকে সহজ করে তোলে। Resolvers হল এমন মেকানিজম যা আইভি ব্যবহার করে নির্দিষ্ট ডিপেন্ডেন্সি বা লাইব্রেরি সংগ্রহ করার জন্য বিভিন্ন উৎস বা সোর্স অনুসন্ধান করে। অ্যাপাচি আইভি তিনটি মূল বিল্ট-ইন রেজলভারের মাধ্যমে ডিপেন্ডেন্সি রেজোলিউশন করতে পারে: Chain Resolver, URL Resolver, এবং File System Resolver।
এই রেজলভারের মাধ্যমে আপনি আইভি রিপোজিটরির মধ্যে থেকে নির্দিষ্ট লাইব্রেরি বা ডিপেন্ডেন্সি সহজে সংগ্রহ করতে পারেন।
Chain Resolver একটি কনফিগারেশন সিস্টেম, যা একাধিক রেজলভারের মধ্যে একটি চেইন তৈরি করে। এর মাধ্যমে আইভি একাধিক রেজলভারের মধ্যে অনুসন্ধান করবে, যখন একটি নির্দিষ্ট লাইব্রেরি বা ডিপেন্ডেন্সি প্রথম রেজলভারে না পাওয়া যায়, তখন পরবর্তী রেজলভারটিতে অনুসন্ধান করা হবে। এটি আপনাকে ডিপেন্ডেন্সি রেজোলিউশন প্রক্রিয়াকে আরো নমনীয় এবং ব্যাপকভাবে কাস্টমাইজড করতে সহায়তা করে।
<ivy-module version="2.0">
<info organisation="com.example" module="myapp" revision="1.0"/>
<repositories>
<!-- Chain resolver configuration -->
<chain name="myChainResolver">
<resolver ref="local-repo"/>
<resolver ref="remote-repo"/>
</chain>
<!-- Local repository -->
<repository name="local-repo" path="path/to/local/repository"/>
<!-- Remote repository -->
<repository name="remote-repo" url="https://repo.maven.apache.org/maven2"/>
</repositories>
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
</dependencies>
</ivy-module>
এখানে:
myChainResolver
একাধিক রেজলভারের মধ্যে অনুসন্ধান করবে, প্রথমে local-repo
তারপর remote-repo
তে লাইব্রেরি খুঁজবে।Chain Resolver এর সুবিধা:
URL Resolver এমন একটি রেজলভার যা URL থেকে লাইব্রেরি ডাউনলোড করতে সক্ষম। এটি মূলত রিমোট রিপোজিটরি বা লাইব্রেরি হোস্টিং সাইট থেকে ডিপেন্ডেন্সি সংগ্রহ করতে ব্যবহৃত হয়। URL রেজলভার আপনাকে নির্দিষ্ট ওয়েবসাইট বা সার্ভার থেকে ডিপেন্ডেন্সি সংগ্রহ করতে সহায়তা করে, যেমন Maven Central বা Ivy Repository।
<ivy-module version="2.0">
<info organisation="com.example" module="myapp" revision="1.0"/>
<repositories>
<!-- URL resolver configuration -->
<resolver name="url-repo" url="https://repo.maven.apache.org/maven2"/>
</repositories>
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
</dependencies>
</ivy-module>
এখানে:
https://repo.maven.apache.org/maven2
URL থেকে লাইব্রেরি ডাউনলোড করবে।URL Resolver এর সুবিধা:
File System Resolver একটি লোকার ডিপেন্ডেন্সি রেজলভার যা আপনার লোকাল ফাইল সিস্টেম থেকে ডিপেন্ডেন্সি সংগ্রহ করে। এটি সাধারণত সেই ক্ষেত্রে ব্যবহৃত হয় যখন ডিপেন্ডেন্সি লোকাল ডিরেক্টরিতে সংরক্ষিত থাকে এবং আপনি সেই ডিরেক্টরি থেকে লাইব্রেরি সংগ্রহ করতে চান। এটি সেই অবস্থায় উপকারী যখন আপনি কোনো কাস্টম রিপোজিটরি বা অফলাইন ডিপেন্ডেন্সি ম্যানেজমেন্ট সিস্টেম ব্যবহার করছেন।
<ivy-module version="2.0">
<info organisation="com.example" module="myapp" revision="1.0"/>
<repositories>
<!-- File system resolver configuration -->
<resolver name="local-file-repo" type="filesystem" path="file:///path/to/local/repository"/>
</repositories>
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
</dependencies>
</ivy-module>
এখানে:
file:///path/to/local/repository
থেকে লাইব্রেরি সংগ্রহ করবে।File System Resolver এর সুবিধা:
আপনি একাধিক রেজলভার ব্যবহার করে একটি কম্বিনেশন তৈরি করতে পারেন, যেমন Chain Resolver, URL Resolver, এবং File System Resolver একত্রিত করে। এটি নিশ্চিত করে যে আইভি একাধিক উৎস থেকে লাইব্রেরি সংগ্রহ করতে পারবে, যা ডিপেন্ডেন্সি রেজোলিউশন প্রক্রিয়াকে আরও নমনীয় এবং শক্তিশালী করে।
<ivy-module version="2.0">
<info organisation="com.example" module="myapp" revision="1.0"/>
<repositories>
<!-- Chain resolver combining multiple resolvers -->
<chain name="myChainResolver">
<resolver ref="local-file-repo"/>
<resolver ref="url-repo"/>
</chain>
<!-- File system resolver -->
<resolver name="local-file-repo" type="filesystem" path="file:///path/to/local/repository"/>
<!-- URL resolver -->
<resolver name="url-repo" url="https://repo.maven.apache.org/maven2"/>
</repositories>
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.9"/>
</dependencies>
</ivy-module>
এখানে:
Apache Ivy এর Built-in Resolvers (Chain Resolver, URL Resolver, এবং File System Resolver) ডিপেন্ডেন্সি সংগ্রহ করার জন্য বিভিন্ন উৎস বা সোর্স অনুসন্ধান করতে সাহায্য করে। Chain Resolver একাধিক রেজলভারকে চেইন আকারে ব্যবহার করতে দেয়, URL Resolver রিমোট সার্ভার বা URL থেকে ডিপেন্ডেন্সি ডাউনলোড করতে ব্যবহৃত হয়, এবং File System Resolver লোকাল ফাইল সিস্টেম থেকে ডিপেন্ডেন্সি সংগ্রহ করতে ব্যবহৃত হয়। এই রেজলভারের মাধ্যমে আপনি বিভিন্ন উৎস থেকে লাইব্রেরি সংগ্রহ করতে পারেন এবং ডিপেন্ডেন্সি রেজোলিউশন প্রক্রিয়াকে আরও কাস্টমাইজড এবং নমনীয় করতে পারেন।
common.read_more