আমি একটি প্যারেন্ট পম ব্যবহার করছি যা একটি প্লাগইন সংজ্ঞায়িত করে যা আমি চাইল্ড পিওমে চালাতে চাই না। চাইল্ড পমের প্লাগইন আমি কীভাবে পুরোপুরি অক্ষম করতে পারি?
সীমাবদ্ধতা: আমি প্যারেন্ট POM নিজেই পরিবর্তন করতে পারি না।
আমি একটি প্যারেন্ট পম ব্যবহার করছি যা একটি প্লাগইন সংজ্ঞায়িত করে যা আমি চাইল্ড পিওমে চালাতে চাই না। চাইল্ড পমের প্লাগইন আমি কীভাবে পুরোপুরি অক্ষম করতে পারি?
সীমাবদ্ধতা: আমি প্যারেন্ট POM নিজেই পরিবর্তন করতে পারি না।
উত্তর:
একটি শিশু পিওএম-এ ফাইন্ডব্যাগগুলি অক্ষম করার সময় নিম্নলিখিতটি আমার জন্য কাজ করে:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<executions>
<execution>
<id>ID_AS_IN_PARENT</id> <!-- id is necessary sometimes -->
<phase>none</phase>
</execution>
</executions>
</plugin>
দ্রষ্টব্য: ফাইন্ডব্যাগস প্লাগইনটির সম্পূর্ণ সংজ্ঞাটি আমাদের প্যারেন্ট / সুপার পিওমে রয়েছে, সুতরাং এটি সংস্করণটি এবং এর পরেও উত্তরাধিকার সূত্রে প্রাপ্ত হবে।
ম্যাভেন 3 এ আপনাকে ব্যবহার করতে হবে:
<configuration>
<skip>true</skip>
</configuration>
প্লাগইন জন্য।
<id>…</id>
প্যারেন্ট পুমের অংশ যোগ করতে হয়েছিল , তবে এটি আমার পক্ষে কাজ করেছিল worked
<skip>
প্যারামিটার নেই।
দেখুন প্লাগইনটির কোনও 'স্কিপ' কনফিগারেশন প্যারামিটার রয়েছে কিনা। প্রায় সব। যদি এটি হয় তবে এটি কেবল শিশুর একটি ঘোষণায় যুক্ত করুন:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
যদি তা না হয় তবে ব্যবহার করুন:
<plugin>
<groupId>group</groupId>
<artifactId>artifact</artifactId>
<executions>
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
থ্রেডটি পুরানো, তবে এখনও কেউ আগ্রহী। আমি সবচেয়ে সংক্ষিপ্ততম ফর্মটি খুঁজে পেয়েছি ইলেক্স এবং বারমার্গুলির উদাহরণ থেকে আরও উন্নতি। এক্সিকিউশন ট্যাগটি দেখতে পাবেন:
<execution>
<id>TheNameOfTheRelevantExecution</id>
<phase/>
</execution>
আমি 2 পয়েন্টগুলি হাইলাইট করতে চাই:
পোস্ট করার পরে এটি ইতিমধ্যে স্ট্যাকওভারফ্লোতে রয়েছে: একটি ম্যাভেন মাল্টি-মডিউল প্রকল্পে, আমি কীভাবে একটি সন্তানের প্লাগইন অক্ষম করতে পারি?
আমি জানি এই থ্রেডটি আসলেই পুরানো তবে @ ইভান বান্দারেঙ্কো থেকে সমাধান আমার পরিস্থিতিতে আমাকে সহায়তা করেছে।
আমার মধ্যে নিম্নলিখিত ছিল pom.xml
।
<build>
...
<plugins>
<plugin>
<groupId>com.consol.citrus</groupId>
<artifactId>citrus-remote-maven-plugin</artifactId>
<version>${citrus.version}</version>
<executions>
<execution>
<id>generate-citrus-war</id>
<goals>
<goal>test-war</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
আমি যা চেয়েছিলাম তা হ'ল generate-citrus-war
একটি নির্দিষ্ট প্রোফাইলের কার্যকর করা অক্ষম করা এবং এটিই ছিল সমাধান:
<profile>
<id>it</id>
<build>
<plugins>
<plugin>
<groupId>com.consol.citrus</groupId>
<artifactId>citrus-remote-maven-plugin</artifactId>
<version>${citrus.version}</version>
<executions>
<!-- disable generating the war for this profile -->
<execution>
<id>generate-citrus-war</id>
<phase/>
</execution>
<!-- do something else -->
<execution>
...
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>