বিঃদ্রঃ:
এই উত্তরটি কেবল মাভেন 2 এর জন্য প্রযোজ্য! উল্লিখিত LATEST
এবং RELEASE
মেটাভার্সনগুলি 6 বছর আগে "পুনরুত্পাদনযোগ্য বিল্ডগুলির জন্য" ম্যাভেন 3 এ বাদ দেওয়া হয়েছে । দয়া করে এই ম্যাভেন 3 অনুগত সমাধানটি দেখুন ।
আপনি যদি সর্বদা নতুন সংস্করণটি ব্যবহার করতে চান তবে মাভেনের দুটি কীওয়ার্ড রয়েছে যা আপনি সংস্করণ সীমার বিকল্প হিসাবে ব্যবহার করতে পারেন। আপনি যে প্লাগিনগুলি / নির্ভরতাগুলি ব্যবহার করছেন সেটি আর নিয়ন্ত্রণে না থাকায় আপনার এই বিকল্পগুলি যত্ন সহকারে ব্যবহার করা উচিত।
আপনি যখন কোনও প্লাগইন বা নির্ভরতার উপর নির্ভর করেন তখন আপনি লেটেস্ট বা রিলিজের সংস্করণ মানটি ব্যবহার করতে পারেন। সর্বশেষ প্রকাশিত বা স্ন্যাপশট সংস্করণটিকে নির্দিষ্ট একটি নিদর্শনটির উল্লেখ করে, একটি নির্দিষ্ট সংগ্রহস্থলের সর্বাধিক মোতায়েন করা আর্টফ্যাক্ট। রিলিজোরিতে সর্বশেষ নন-স্নাপশট প্রকাশের কথা উল্লেখ করে। সাধারণভাবে, সফ্টওয়্যারটি ডিজাইন করার পক্ষে এটি সর্বোত্তম অনুশীলন নয় যা কোনও শৈল্পিকের একটি অ-নির্দিষ্ট সংস্করণের উপর নির্ভর করে। আপনি যদি সফ্টওয়্যারটি বিকাশ করছেন তবে আপনি রিলিজ বা লেটেস্টটিকে সুবিধার্থে ব্যবহার করতে চাইতে পারেন যাতে কোনও তৃতীয় পক্ষের লাইব্রেরির নতুন প্রকাশ প্রকাশের সময় সংস্করণ নম্বরগুলি আপডেট করতে না হয়। আপনি যখন সফ্টওয়্যার প্রকাশ করেন, আপনার সর্বদা নিশ্চিত হওয়া উচিত যে আপনার প্রকল্পটি আপনার নির্মাণের সম্ভাবনা কমাতে বা আপনার প্রকল্পের নিয়ন্ত্রণাধীন নয় এমন একটি সফ্টওয়্যার রিলিজ দ্বারা আপনার প্রকল্প ক্ষতিগ্রস্ত হওয়ার সম্ভাবনা হ্রাস করতে নির্দিষ্ট সংস্করণগুলির উপর নির্ভর করে।
দেখুন ম্যাভেন বইয়ের খুলুন POM সিনট্যাক্স অধ্যায় আরো বিস্তারিত জানার জন্য। অথবা নির্ভরতা সংস্করণ রেঞ্জের এই দস্তাবেজটি দেখুন , যেখানে:
- একটি বর্গাকার বন্ধনী (
[
& ]
) অর্থ "বদ্ধ" (অন্তর্ভুক্ত)।
- একটি প্রথম বন্ধনী (
(
& )
) অর্থ "উন্মুক্ত" (একচেটিয়া)।
বিভিন্ন বিকল্পের চিত্র তুলে ধরে এখানে একটি উদাহরণ দেওয়া আছে। ম্যাভেনের সংগ্রহস্থলে, com.foo:my-foo এর নিম্নলিখিত মেটাডেটা রয়েছে:
<?xml version="1.0" encoding="UTF-8"?><metadata>
<groupId>com.foo</groupId>
<artifactId>my-foo</artifactId>
<version>2.0.0</version>
<versioning>
<release>1.1.1</release>
<versions>
<version>1.0</version>
<version>1.0.1</version>
<version>1.1</version>
<version>1.1.1</version>
<version>2.0.0</version>
</versions>
<lastUpdated>20090722140000</lastUpdated>
</versioning>
</metadata>
যদি সেই শৈল্পিকের উপর নির্ভরতা প্রয়োজন হয়, আপনার নিম্নলিখিত বিকল্পগুলি রয়েছে (অন্যান্য সংস্করণ সীমা অবশ্যই নির্দিষ্ট করা যেতে পারে, কেবল এখানে প্রাসঙ্গিক দেখিয়ে):
একটি সঠিক সংস্করণ ঘোষণা করুন (সর্বদা 1.0.1 এ সমাধান হবে):
<version>[1.0.1]</version>
একটি সুস্পষ্ট সংস্করণ ঘোষণা করুন (কোনও সংঘর্ষ না হলে সর্বদা 1.0.1 এ সমাধান হবে, যখন মাভেন একটি ম্যাচিং সংস্করণ নির্বাচন করবে):
<version>1.0.1</version>
সমস্ত 1.x এর জন্য একটি সংস্করণ পরিসীমা ঘোষণা করুন (বর্তমানে 1.1.1 এ সমাধান হবে):
<version>[1.0.0,2.0.0)</version>
একটি মুক্ত-সমাপ্ত সংস্করণ পরিসীমা ঘোষণা করুন (2.0.0 এ সমাধান হবে):
<version>[1.0.0,)</version>
সংস্করণটি সর্বশেষ হিসাবে ঘোষণা করুন (২.০.০ এ সমাধান হবে) (ম্যাভেন ৩.x থেকে সরানো)
<version>LATEST</version>
সংস্করণটিকে রিলিজ হিসাবে ঘোষণা করুন (1.1.1 এ সমাধান হবে) (ম্যাভেন 3.x থেকে সরানো):
<version>RELEASE</version>
নোট করুন যে ডিফল্টরূপে আপনার নিজস্ব মোতায়েনগুলি ম্যাভেন মেটাডেটাতে "সর্বশেষ" এন্ট্রি আপডেট করবে, তবে "রিলিজ" এন্ট্রি আপডেট করতে আপনাকে ম্যাভেন সুপার পিওএম থেকে "রিলিজ-প্রোফাইল" সক্রিয় করতে হবে । আপনি এটি "-প্রিলেজ-প্রোফাইল" বা "-ড্পারফর্মরেজি = সত্য" এর মাধ্যমে করতে পারেন
এটি জোর দিয়ে বলার অপেক্ষা রাখে না যে যে কোনও পদ্ধতির মাধ্যমে মাভেন নির্ভরতার সংস্করণগুলি (লেটেস্ট, রিলিজ এবং সংস্করণ রেঞ্জ) বাছাই করতে পারবেন আপনাকে সময় সমস্যা তৈরি করতে উন্মুক্ত রেখে দিতে পারে, কারণ পরবর্তী সংস্করণগুলিতে আলাদা আচরণ থাকতে পারে (উদাহরণস্বরূপ নির্ভরতা প্লাগইন পূর্বে একটি ডিফল্ট পরিবর্তন করেছে) বিভ্রান্তিমূলক ফলাফল সহ সত্য থেকে মিথ্যা পর্যন্ত মান)।
রিলিজগুলিতে সঠিক সংস্করণগুলি সংজ্ঞায়িত করা সাধারণত একটি ভাল ধারণা। টিমের উত্তরটি যেমন উল্লেখ করেছে, মভেন-সংস্করণ-প্লাগইন নির্ভরতা সংস্করণগুলি, বিশেষত সংস্করণগুলি: আপডেট -সর্বশেষ সংস্করণ এবং সংস্করণগুলি: ব্যবহার-সর্বশেষ-প্রকাশের লক্ষ্যগুলি আপডেট করার জন্য একটি সহজ সরঞ্জাম ।