Ivy Dependency Tree হল একটি দৃশ্যমান কাঠামো যা আপনার প্রোজেক্টের সমস্ত ডিপেন্ডেন্সি এবং তাদের ট্রান্সিটিভ (transitive) ডিপেন্ডেন্সিগুলির সম্পর্ক দেখায়। এটি আপনাকে সাহায্য করে আপনার প্রোজেক্টের ডিপেন্ডেন্সির কাঠামো বোঝার জন্য এবং নির্দিষ্ট ডিপেন্ডেন্সি বা লাইব্রেরি কোথা থেকে এসেছে তা ট্র্যাক করার জন্য।
Ivy Dependency Tree মূলত একটি টুল যা লাইব্রেরি এবং তাদের নির্ভরশীলতার চেইন বা হায়ারারকি তুলে ধরে, যেন আপনি সহজে বুঝতে পারেন কোন লাইব্রেরি অন্য কোন লাইব্রেরির উপর নির্ভরশীল এবং সেই লাইব্রেরির সংস্করণ কী।
ডিপেন্ডেন্সি ট্রি সাধারণত নিম্নলিখিত ধারণা সমূহের উপর কাজ করে:
এটা সাহায্য করে ডিপেন্ডেন্সি কনফ্লিক্ট এবং ভার্সন সলভিংও বুঝতে এবং সমাধান করতে।
Ivy আপনার প্রোজেক্টের ivy.xml ফাইল থেকে ডিপেন্ডেন্সি রেজলভ করে এবং একে একে তাদের ট্রান্সিটিভ ডিপেন্ডেন্সি রেজলভ করে। আপনি Ivy কে নির্দেশ দিতে পারেন যে এটি ডিপেন্ডেন্সি ট্রী বের করে দেখাবে।
Ivy ডিপেন্ডেন্সি ট্রী দেখতে বিভিন্ন কমান্ডের মাধ্যমে গ্রাফিকাল বা টেক্সট আউটপুটে দেখাতে পারে। এই আউটপুটে আপনি দেখতে পাবেন প্রতিটি ডিপেন্ডেন্সি এবং তাদের সম্পর্ক।
Ivy-এর dependency tree দেখতে আপনাকে Ivy টাস্ক ব্যবহার করে টেক্সট আউটপুটে ডিপেন্ডেন্সির কাঠামো দেখতে হবে। এটি সাধারণত Ant স্ক্রিপ্টের মাধ্যমে করা হয়।
ivy.xml ফাইল তৈরি করুন যেখানে আপনি সরাসরি ডিপেন্ডেন্সি নির্ধারণ করবেন:
<ivy-module version="2.0">
<info organisation="com.example" module="my-app" />
<dependencies>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
<dependency org="junit" name="junit" rev="4.13.1"/>
</dependencies>
</ivy-module>
এখানে:
<project name="IvyExample" default="dependency-tree" basedir=".">
<taskdef name="ivy" classname="org.apache.ivy.ant.IvyTask"/>
<target name="dependency-tree">
<ivy:retrieve/>
<ivy:report type="tree"/>
</target>
</project>
এখানে:
<ivy:report type="tree"/>
টাস্কটি Ivy-এর dependency tree আউটপুট তৈরি করবে।<ivy:retrieve/>
টাস্কটি ডিপেন্ডেন্সি ডাউনলোড করবে।এখন, Ant স্ক্রিপ্টটি চালালে আপনি dependency tree দেখতে পারবেন:
ant dependency-tree
এটি Ivy এর ডিপেন্ডেন্সি ট্রী আউটপুট দেবে, যেখানে আপনার সরাসরি এবং ট্রান্সিটিভ ডিপেন্ডেন্সি গুলি সম্পর্ক সহ প্রদর্শিত হবে।
[ivy] :: resolving dependencies :: com.example#my-app;1.0.0
[ivy] confs: [default]
[ivy] found commons-lang3#commons-lang3;3.12.0 in central
[ivy] found junit#junit;4.13.1 in central
[ivy] resolved commons-lang3-3.12.0
[ivy] resolved junit-4.13.1
[ivy] commons-lang3-3.12.0
[ivy] -> commons-logging-1.2
[ivy] -> commons-collections-3.2.1
[ivy] junit-4.13.1
এখানে:
Ivy টাস্কে report type অপশন ব্যবহার করে আপনি বিভিন্ন ধরনের রিপোর্ট তৈরি করতে পারেন, যেমন:
<ivy:report type="html"/>
এটি HTML ফরম্যাটে ডিপেন্ডেন্সি রিপোর্ট তৈরি করবে।
Ivy Dependency Tree টুলটি Ivy ব্যবহারকারীদের জন্য একটি শক্তিশালী উপকারিতা। এটি ডিপেন্ডেন্সি এবং তাদের সম্পর্ক বিশ্লেষণ করতে সাহায্য করে। Ivy-এর dependency tree কমান্ডের মাধ্যমে আপনি আপনার প্রোজেক্টের ডিপেন্ডেন্সির কাঠামো দেখতে পারবেন, এবং তার ট্রান্সিটিভ ডিপেন্ডেন্সি এবং ভার্সন কনফ্লিক্ট সহজে চিহ্নিত করতে পারবেন। এটি প্রোজেক্টের ডিপেন্ডেন্সি ম্যানেজমেন্ট এবং বিল্ড প্রক্রিয়া আরো পরিষ্কার এবং দক্ষ করে তোলে।
common.read_more