মাভেনের pom.xML এ প্লাগইন ম্যানেজমেন্ট কী?


266

এটি আমার পম ফাইলের একটি স্নিপেট।

....
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.4</version>                        
                <executions>
                    <execution>
                        <phase>install</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            ......
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
...

কমান্ড দিয়ে আমি এটি সফলভাবে ব্যবহার করি

mvn install

কিন্তু, যখন আমি এটিকে "প্লাগইন ম্যানেজমেন্ট" ট্যাগের সাথে সংযুক্ত করার চেষ্টা maven-dependency-pluginকরি, installলক্ষ্যটি চালু করি তখন কাজ করা বন্ধ হয়ে যায় । "প্লাগইন ম্যানেজমেন্ট" ট্যাগ বিল্ড আচরণে কেন পরিবর্তন করে? অথবা আমি অন্য লক্ষ্য বা বিকল্প ব্যবহার করা উচিত?

উত্তর:


299

আপনি এখনও যোগ করতে হবে

<plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
    </plugin>
</plugins>

আপনার বিল্ডে, কারণ pluginManagementআপনার সমস্ত প্রকল্পের মডিউলগুলিতে একই প্লাগইন কনফিগারেশন ভাগ করার একমাত্র উপায়।

মাভেন ডকুমেন্টেশন থেকে:

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


266

<pluginManagement/>এবং এর মধ্যে পার্থক্যটি <plugins/>হ'ল একটি <plugin/>আন্ডার:

  • <pluginManagement/>আপনার বিল্ডের মডিউলগুলির দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত প্লাগইনগুলির জন্য সেটিংস নির্ধারণ করে। আপনার প্যারেন্ট পম ফাইল রয়েছে এমন ক্ষেত্রে এটি দুর্দান্ত।

  • <plugins/>প্লাগইনটির আসল প্রার্থনা। এটি হতে পারে বা উত্তরাধিকার সূত্রে প্রাপ্ত হতে পারে না <pluginManagement/>

<pluginManagement/>আপনার প্রকল্পের কোনও দরকার নেই , যদি এটি প্যারেন্ট পুম না হয়। তবে এটি যদি পিতামাতার পম হয় তবে সন্তানের পোমে আপনার এই জাতীয় ঘোষণার দরকার আছে:

<plugins>
    <plugin>
        <groupId>com.foo</groupId>
        <artifactId>bar-plugin</artifactId>
    </plugin>
</plugins>

আপনি কীভাবে কোনও কনফিগারেশন সংজ্ঞায়িত করছেন না তা লক্ষ্য করুন। আপনি সন্তানের প্রকল্পের প্রয়োজন অনুসারে আপনার অনুরোধটি আরও সামঞ্জস্য করার প্রয়োজন না হলে আপনি পিতামাতার কাছ থেকে এটি উত্তরাধিকারী হতে পারেন।

আরও নির্দিষ্ট তথ্যের জন্য, আপনি পরীক্ষা করতে পারেন:


ধন্যবাদ তোমার উত্তরের জন্য. আমাকে একই পোম ফাইলে প্লাগইন ম্যানেজমেন্ট এবং প্লাগইন ট্যাগ (মেভেন-নির্ভরতা-প্লাগইনটির জন্য) মিশ্রিত করতে হবে, কারণ আমাকে এম 2 ই Eclipse IDE প্লাগইনটির একটি ছোট্ট বাগটি বাইপাস করতে হবে। দেখুন stackoverflow.com/questions/8706017/...
অ্যান্ড্রিয়া Borgogelli Avveduti

7
ধন্যবাদ! :) এই জন্য একই <dependency/>এবং <dependencyManagement/>। আপনি <dependencyManagement/>বিভাগে নির্ভরতা (তাদের সংস্করণ এবং স্কোপগুলি সহ, যদি আপনি চান) সহ সংজ্ঞা দিন এবং তারপরে <dependencies/>বিভাগে আপনি কেবল groupIdএবং এর সংজ্ঞা দিন artifactId
carlspring

1
যদি আমাকে দু'বার একটি প্লাগইন সম্পাদন করতে হয়, আমি কি প্লাগইন ম্যানেজমেন্ট ব্যবহার করব?
কল্পনা সনি

@ কল্পেশনি: এটি নির্ভর করে - আপনি যে দুটি মৃত্যুদণ্ড কার্যকর করতে চান না তার মধ্যে সাধারণ কনফিগারেশন থাকতে চান।
carlspring

39

যে কোনও এটি ব্যবহার করতে চাইলে আপনি এটিটি কনফিগার করতে pluginManagementএকটি ব্যবহার করেন তবে প্রতিটি শিশু প্লাগইন এটি ব্যবহার করতে চায় না। একটি উদাহরণ হতে পারে যে আপনি ম্যাভেন জাভাদোক প্লাগইনটির জন্য কিছু বিকল্প নির্ধারণ করে।parent pomchild pomsuper pom

প্রত্যেকে child pomজাভাডোক ব্যবহার করতে চাইবে না, তাই আপনি কোনও pluginManagementবিভাগে এই ডিফল্টগুলি সংজ্ঞায়িত করেন । জাভাদোক প্লাগইনটি ব্যবহার করতে চায় এমন চাইল্ড পম কেবল একটি প্লাগইন বিভাগ সংজ্ঞায়িত করে এবং এর সংজ্ঞা থেকে কনফিগারেশনটির উত্তরাধিকারী হবে ।pluginManagementparent pom


ধন্যবাদ. আমি ঠিক একই পোম ফাইলে প্লাগইন ম্যানেজমেন্ট এবং প্লাগইন ট্যাগগুলি মিশ্রিত করতে দেখছি কারণ আমাকে Eclipse এর জন্য এম 2 ই প্লাগইনটির কিছুটা বাগ বাইপাস করতে হবে। দেখুন stackoverflow.com/questions/8706017/...
অ্যান্ড্রিয়া Borgogelli Avveduti

3

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

Http://maven.apache.org/pom.html# প্লাগিন ৯৫ এফ পরিচালনা থেকে From

থেকে অনুলিপি করা:

মাভেন 2 - প্লাগইন ম্যানেজমেন্ট এবং পিতামাতার-সন্তানের সম্পর্কের ক্ষেত্রে সমস্যা

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.