Apache Ivy একটি শক্তিশালী ডিপেনডেন্সি ম্যানেজমেন্ট টুল যা Apache Ant এর সাথে ব্যবহৃত হয়। Ivy ডিপেনডেন্সি রেজোলিউশন প্রক্রিয়া সহজ করতে সাহায্য করে এবং এটি বিভিন্ন রেপোজিটরি থেকে লাইব্রেরি ডাউনলোড করে। Ivy Cache ব্যবস্থাপনা এবং Cache Timeout আপনাকে ডিপেনডেন্সির পুনঃডাউনলোড এবং সঠিকভাবে পরিচালনা করতে সাহায্য করে, যাতে আপনার বিল্ড প্রক্রিয়া দ্রুত এবং আরও কার্যকরী হয়।
এই নিবন্ধে আমরা Ivy Cache Management এবং Cache Timeout নিয়ে আলোচনা করবো।
Ivy Cache Management হল Ivy দ্বারা ব্যবহৃত একটি বৈশিষ্ট্য যা ডিপেনডেন্সি গুলিকে স্থানীয়ভাবে cache (ক্যাশে) করে রাখে। এটি Ivy কে একই ডিপেনডেন্সি বারবার ডাউনলোড না করতে সহায়তা করে, ফলে আপনার বিল্ড প্রক্রিয়া দ্রুততর হয়। ক্যাশে ব্যবস্থাপনার মাধ্যমে Ivy ডিপেনডেন্সি ডাউনলোডের পরে সেগুলি local cache-এ সংরক্ষণ করে রাখে, এবং পরবর্তী সময়ে সেগুলি সোজা ঐ ক্যাশে থেকে ব্যবহার করতে পারে।
Ivy ক্যাশে ডিফল্টভাবে ${user.home}/.ivy2/cache
ডিরেক্টরিতে সঞ্চিত হয়।
Ivy একটি local cache ব্যবহার করে, যেখানে এটি সমস্ত ডিপেনডেন্সি এবং তাদের মেটাডেটা সংরক্ষণ করে রাখে। ক্যাশে থাকা ডিপেনডেন্সিগুলি ব্যবহার করা হলে Ivy পুনরায় রেপোজিটরি থেকে ডাউনলোড করবে না, বরং সেগুলিকে ক্যাশ থেকে সরাসরি ব্যবহার করবে। ক্যাশে ব্যবস্থাপনা নিম্নলিখিতভাবে কাজ করে:
Cache Timeout হল একটি কনফিগারেশন সেটিং যা Ivy-কে নির্দেশ দেয় কত সময় পর ক্যাশে থাকা ডিপেনডেন্সিগুলির মেয়াদ শেষ হবে এবং আবার রেপোজিটরি থেকে নতুন ভার্সন ডাউনলোড করতে হবে। এটি ব্যবহার করার মাধ্যমে আপনি নির্ধারণ করতে পারেন কখন ক্যাশে থাকা ডিপেনডেন্সি আবার রেপোজিটরি থেকে আপডেট হবে।
Ivy-তে Cache Timeout কনফিগার করতে আপনি ivysettings.xml
ফাইল ব্যবহার করতে পারেন। এর মাধ্যমে আপনি ক্যাশে থেকে ডিপেনডেন্সি পুনরায় ব্যবহার বা নতুন করে রেজোল্ভ করার সময় নির্ধারণ করতে পারবেন।
<ivysettings>
<cachemanager default="defaultCache">
<!-- Set cache timeout for 24 hours -->
<timeout value="86400000"/>
</cachemanager>
</ivysettings>
এখানে:
<cachemanager>
: এটি Ivy-এর ক্যাশে ব্যবস্থাপনার কনফিগারেশন ব্লক।timeout value="86400000"
: এটি ক্যাশে টাইমআউটকে ২৪ ঘণ্টা (২৪ ঘণ্টা = 86400000 মিলিসেকেন্ড) সেট করে। এর মানে হচ্ছে, ২৪ ঘণ্টা পর Ivy ক্যাশে থাকা ডিপেনডেন্সি পুনরায় রেপোজিটরি থেকে রেজোল্ভ করবে।ধরা যাক, আপনি ক্যাশে ব্যবস্থাপনার জন্য একটি কনফিগারেশন তৈরি করেছেন যা Ivy কে নির্দেশ দেয় পুরনো ডিপেনডেন্সি ২৪ ঘণ্টা পর নতুন করে ডাউনলোড করতে:
<ivysettings>
<!-- Defining Cache manager -->
<cachemanager default="defaultCache">
<timeout value="86400000"/> <!-- Cache Timeout for 24 hours -->
</cachemanager>
<!-- Repository Configuration -->
<resolvers>
<ibiblio name="central" root="https://repo1.maven.org/maven2/" />
</resolvers>
</ivysettings>
এটি Ivy কে central
Maven রেপোজিটরি থেকে ডিপেনডেন্সি রেজোল্ভ করতে বলবে এবং ২৪ ঘণ্টা পর ক্যাশে পুনরায় রিফ্রেশ করবে।
কিছু সময় পর, যদি আপনি চান যে Ivy আপনার ক্যাশে ফোল্ডারকে পরিষ্কার (clear) করে, অর্থাৎ সমস্ত পুরনো ডিপেনডেন্সি মুছে দেয়, তবে আপনি ক্যাশ ক্লিন করতে পারেন। এর মাধ্যমে আপনি নিশ্চিত করতে পারেন যে পরবর্তী বিল্ডে শুধুমাত্র নতুন ডিপেনডেন্সি ব্যবহার হবে।
# Clean the Ivy Cache
rm -rf ~/.ivy2/cache/*
এই কমান্ডটি Ivy ক্যাশের সব ডিপেনডেন্সি মুছে ফেলবে এবং পরবর্তী সময় ডিপেনডেন্সি পুনরায় ডাউনলোড হবে।
Ivy Cache Management এবং Cache Timeout Ivy ব্যবহারকারীদের ডিপেনডেন্সি ম্যানেজমেন্ট প্রক্রিয়া সহজ এবং দ্রুত করতে সহায়তা করে। Ivy Local Cache ব্যবহার করে ডিপেনডেন্সি রেজোলিউশন দ্রুততর এবং অফলাইনে সক্ষম করে। Cache Timeout কনফিগারেশনের মাধ্যমে আপনি নির্ধারণ করতে পারেন কখন ক্যাশে থাকা ডিপেনডেন্সি মেয়াদোত্তীর্ণ হবে এবং পুনরায় ডাউনলোড হবে। Ivy এর ক্যাশে ব্যবস্থাপনা বিল্ড সময় সাশ্রয়ী এবং কার্যকরী বিল্ড প্রক্রিয়ার জন্য সহায়ক।
common.read_more