Apache Ivy একটি ডিপেনডেন্সি ম্যানেজমেন্ট টুল যা Java প্রোজেক্টে ব্যবহৃত লাইব্রেরি এবং ডিপেনডেন্সি গুলি ম্যানেজ এবং রেজলভ করতে সহায়তা করে। ডিপেনডেন্সি রেজলভেশন প্রক্রিয়া হচ্ছে আইভি টুলের মূল কাজ, যার মাধ্যমে এটি নির্দিষ্ট ডিপেনডেন্সি রেজলভ করে এবং ডাউনলোড করে আনে।
Apache Ivy তে ডিপেনডেন্সি রেজলভেশন প্রক্রিয়া একটি সিস্টেমেটিক প্রক্রিয়া যা নিম্নলিখিত স্টেপ অনুসরণ করে।
Ivy.xml ফাইল থেকে Dependency রেজলভ করা:
ivy.xml
ফাইলটি ব্যবহার করে সমস্ত ডিপেনডেন্সি রেজলভেশন শুরু করে।উদাহরণস্বরূপ:
<ivy-module version="2.0">
<info organisation="com.example" module="myproject" revision="1.0"/>
<dependencies>
<dependency org="org.springframework" name="spring-core" rev="5.3.10"/>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
</dependencies>
</ivy-module>
এখানে Ivy দেখবে যে আপনার প্রোজেক্টে spring-core
এবং commons-lang3
ডিপেনডেন্সি প্রয়োজন এবং সেই অনুযায়ী এগুলি ডাউনলোড করতে শুরু করবে।
resolve
টাস্কের মাধ্যমে ডিপেনডেন্সি রেজলভ করার প্রক্রিয়া শুরু হয়। এটি Ivy.xml ফাইলে উল্লেখিত সমস্ত ডিপেনডেন্সি রেজলভ করে, অর্থাৎ ডিপেনডেন্সির সোর্স (যেমন Maven Central বা Custom Repositories) থেকে লাইব্রেরি ডাউনলোড করে।Transitive Dependencies (ট্রান্সিটিভ ডিপেনডেন্সি):
উদাহরণ:
spring-core
লাইব্রেরিটি spring-beans
বা spring-context
এর মতো লাইব্রেরির ওপর নির্ভরশীল হতে পারে, সেক্ষেত্রে Ivy ঐ সমস্ত ট্রান্সিটিভ ডিপেনডেন্সি রেজলভ করবে।.jar
, .war
, .pom
) রেজলভ করে।ধরা যাক, আপনার প্রোজেক্টে spring-core
এবং commons-lang3
ডিপেনডেন্সি রয়েছে এবং আপনি Ivy ব্যবহার করে সেগুলি রেজলভ করতে চান।
<ivy-module version="2.0">
<info organisation="com.example" module="myapp" revision="1.0"/>
<dependencies>
<dependency org="org.springframework" name="spring-core" rev="5.3.10"/>
<dependency org="org.apache.commons" name="commons-lang3" rev="3.12.0"/>
</dependencies>
</ivy-module>
Run resolve
task:
resolve
টাস্ক ব্যবহার করতে হয়।<target name="resolve-dependencies">
<ivy:resolve/>
</target>
এই টাস্কটি Ivy কে ডিপেনডেন্সি রেজলভ করার নির্দেশ দেয়। এটি Maven Central বা আপনার কাস্টম রিপোজিটরি থেকে spring-core এবং commons-lang3 ডাউনলোড করবে।
Retrieve Dependencies:
retrieve
টাস্ক ব্যবহার করে সেগুলিকে লোকাল ডিরেক্টরিতে কপি করা হয়।<target name="retrieve-dependencies">
<ivy:retrieve/>
</target>
এটি আপনার ডিপেনডেন্সি ডাউনলোড করে lib/
ফোল্ডারে রাখবে।
Apache Ivy একটি শক্তিশালী ডিপেনডেন্সি ম্যানেজমেন্ট টুল যা Java প্রোজেক্টের লাইব্রেরি এবং ডিপেনডেন্সি রেজলভ এবং ম্যানেজ করতে সহায়তা করে। Ivy ডিপেনডেন্সি রেজলভেশন প্রক্রিয়া সমর্থন করে, যেখানে ডিপেনডেন্সি ফাইল (ivy.xml), ভার্সন কনফ্লিক্ট রেজলভেশন, ট্রান্সিটিভ ডিপেনডেন্সি রেজলভেশন, এবং লোকাল ও রিমোট রিপোজিটরি ব্যবহৃত হয়। Ivy ব্যবহারের মাধ্যমে আপনি সহজেই আপনার প্রোজেক্টের প্রয়োজনীয় লাইব্রেরি রেজলভ এবং ম্যানেজ করতে পারেন, যা বিল্ড প্রক্রিয়াকে আরও দ্রুত এবং কার্যকরী করে তোলে।
common.read_more