मैं एक माता-पिता POM का उपयोग कर रहा हूं जो एक प्लगइन को परिभाषित करता है जिसे मैं एक बच्चे POM में नहीं चलाना चाहता। मैं चाइल्ड पोम में प्लगइन को पूरी तरह से कैसे निष्क्रिय कर सकता हूं?
बाधा: मैं मूल POM को स्वयं नहीं बदल सकता।
मैं एक माता-पिता POM का उपयोग कर रहा हूं जो एक प्लगइन को परिभाषित करता है जिसे मैं एक बच्चे POM में नहीं चलाना चाहता। मैं चाइल्ड पोम में प्लगइन को पूरी तरह से कैसे निष्क्रिय कर सकता हूं?
बाधा: मैं मूल 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>
नोट: फाइंडबग्स प्लगइन की पूरी परिभाषा हमारे माता-पिता / सुपर पोम में है, इसलिए यह संस्करण और इतने पर विरासत में मिलेगा।
Maven 3 में, आपको उपयोग करने की आवश्यकता होगी:
<configuration>
<skip>true</skip>
</configuration>
प्लगइन के लिए।
<id>…</id>
मूल POM का हिस्सा जोड़ना था , तब यह मेरे लिए काम करता था।
<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>
धागा पुराना है, लेकिन शायद किसी को अभी भी दिलचस्पी है। मुझे जो सबसे छोटा रूप मिला, वह λlex और bmargulies के उदाहरण पर और सुधार है। निष्पादन टैग इस तरह दिखाई देगा:
<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>