বিভিন্ন বিল্ড প্রোফাইলের জন্য বিভিন্ন নির্ভরতা


115

বিভিন্ন প্রোফাইলের জন্য কোনও ম্যাভেন পম.এক্সএমএল ফাইলে নির্ভরশীলতার আলাদা সেট থাকা কি সম্ভব?

যেমন

mvn -P debug
mvn -P release

আমি একটি প্রোফাইলে আলাদা আলাদা নির্ভরতা জার ফাইলটি তুলতে চাই যাতে একই শ্রেণীর নাম এবং একই ইন্টারফেসের বিভিন্ন প্রয়োগ রয়েছে।


এটি বিভিন্ন ওয়েব সার্ভারগুলিকে টার্গেট করার সময় ব্যবহার করা যেতে পারে। উদাহরণস্বরূপ, একটি জাভা ই 5 সার্ভারের জন্য নির্মাণের সময়, যা জ্যাকএক্সবি এর মতো লিবস সরবরাহ করে, যা আপনাকে আপনার যুদ্ধের ফাইলে অন্তর্ভুক্ত করা উচিত নয়, জাভাএই 1.4 সার্ভারের জন্য বনাম নির্মাণ, যেখানে আপনাকে জ্যাকএক্সবি জারের অন্তর্ভুক্ত করা উচিত।
লিওনেল

উত্তর:


174

এটিতে মাভেন ডকুমেন্টেশনের উদ্ধৃতি দিতে :

একটি প্রোফাইল উপাদানটিতে anচ্ছিক অ্যাক্টিভেশন (একটি প্রোফাইল ট্রিগার) এবং POM- এ করা পরিবর্তনগুলির সেট উভয়ই থাকে যদি সেই প্রোফাইলটি সক্রিয় করা থাকে। উদাহরণস্বরূপ, একটি পরীক্ষার পরিবেশের জন্য নির্মিত একটি প্রকল্প চূড়ান্ত স্থাপনার চেয়ে আলাদা ডেটাবেসকে নির্দেশ করতে পারে। অথবা নির্ভরযোগ্যতাগুলি ব্যবহার করা জেডিকে সংস্করণ অনুসারে বিভিন্ন সংগ্রহশালা থেকে নেওয়া যেতে পারে

(জোর আমার)

কেবলমাত্র releaseপ্রোফাইল ঘোষণার ভিতরে প্রোফাইলের জন্য নির্ভরতা রাখুন এবং এর জন্য একই করুন debug

<প্রোফাইলের>
    <প্রোফাইল>
        <আইডি> ডিবাগ </ আইডি>
        ...
        <নির্ভরতা>
            <নির্ভরতা> ... </ নির্ভরতা>
        </ নির্ভরতা>
        ...
    </ প্রোফাইল>
    <প্রোফাইল>
        <আইডি> মুক্তি </ আইডি>
        ...
        <নির্ভরতা>
            <নির্ভরতা> ... </ নির্ভরতা>
        </ নির্ভরতা>
        ...
    </ প্রোফাইল>
</ প্রোফাইলের>

2
এই পদ্ধতিটি সম্পাদনা মোডে কোডটি অমীমাংসিত হতে পারে। যদি ডিবাগ সক্রিয় থাকে, মুক্তির নির্ভরতা জারটি অনুপস্থিত হবে এবং কোডটি ত্রুটিযুক্ত হবে। কীভাবে সমাধান করবেন?
ব্রুসেনান

6
আপনি নির্ভরতা শ্রেণিবিন্যাসে রিলিজের নির্দিষ্ট নির্ভরতার সুযোগটি 'সরবরাহিত' হিসাবে সেট করতে পারেন এবং প্রকাশের প্রোফাইল বিভাগে সুযোগটি 'সংকলন' করতে পুনরায় সেট করতে পারেন। যাতে নির্ভরতা সংকলনের জন্য উপলব্ধ তবে 'ডিবাগ' প্রোফাইলের জন্য চূড়ান্ত যুদ্ধে নয়।
উদয়

@uday আপনি যদি এমন কোনও উত্তর দেখান যে আমি এটির
উন্নতি

আইএমএইচও প্রোফাইলগুলি নিরর্থক, কমপক্ষে নির্ভরতার জন্য: আইডিইগুলি ত্রুটি দেয়, নির্ভরতাগুলি সমাধান করা বন্ধ করে দেয়, অ্যাপ্লিকেশনগুলি শেষ পর্যন্ত কাজ করছে না। আমি আরও আশা ছিল।
এরেস

6

আপনার গ্রুপআইডি, আর্টিফ্যাক্টআইডিটি আপনার প্রোফাইলে বৈশিষ্ট্য হিসাবে চিহ্নিত করা উচিত এবং আপনি আপনার নির্ভরতা জেনেরিক বিভাগে সরাতে পারেন move


2
আপনার যদি 1 টি নির্ভরতা থাকে তবে এটি কেবল তখনই ঘটবে। ডিবাগ এবং প্রকাশের মধ্যে যদি নির্ভরতার সংখ্যা পৃথক হয় তবে টোকানাইজিংয়ের কাজ হবে না। এই বিষয়টির জন্য আমি প্রোফাইল বিভাগে ডিপগুলি স্পষ্টভাবে সংজ্ঞায়িত না করার এবং স্পষ্টভাবে ব্যাখ্যা না করার পরামর্শ দেব।
মার্সেল ওভারডিজক

অন্য উত্তরটি আমার পক্ষে কার্যকর হয়নি, কারণ অন্যান্য নির্দিষ্ট প্রোফাইল নির্ভরতাগুলির সাথে ডিফল্ট প্রোফাইল নির্ভরতা এখনও অন্তর্ভুক্ত ছিল। আপনার উত্তরটি ঠিক কাজ করেছে।
ভ্লাদ মিহালসিয়া

@ ভ্লাদ আপনি কি পিওএমের প্রধান সংস্থা থেকে নির্ভরতা সরিয়েছেন? অন্যথায় আপনি এটি দুটি বার পাবেন। (দেখুন stackoverflow.com/q/24855678/6944068 কিভাবে নিশ্চিত একটি প্রোফাইল সর্বদা সক্রিয় করতে সম্পর্কে।)
toolforger
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.