[ http://jira.codehaus.org/browse/MNG-2237?page=comments#action_65174 ]
Anatol Pomozov commented on MNG-2237: ------------------------------------- I have problem with self-written plugin. My plugin patches web.xml file and it is configured in parent and child pom - so it runs twice. For me patching web.xml twice is fatal error that is why I add quick fix of the problem to MY plugin. Here it is {{ //Quick fix for double plugin execution. See maven bug reports in maven2 JIRA (MNG-2221, MNG-2237, MNG-2054) //First of all check that we have not patched web.xml yet. private static List<String> _processedWebXMLFiles = new LinkedList<String>(); private boolean isDoubledPluginExecution(String aFileName) { //Build hash from params StringBuffer params = new StringBuffer(); params.append(contextParams).append(jspConfig).append(listeners).append(servletMappings).append(servlets).append(taglibs); int hash = params.toString().hashCode(); String hashedFileName = aFileName + String.valueOf(hash); if (_processedWebXMLFiles.contains(hashedFileName)) return true; else { _processedWebXMLFiles.add(hashedFileName); return false; } } }} and in execute() method of plugin I have added checking that file already patched {{ File webXmlFile = new File(webappDirectory, "WEB-INF/web.xml"); if (isDoubledPluginExecution(webXmlFile.getCanonicalPath())) { getLog().warn("File already patched. Skip it!"); return; } }} It works for me well but I prefer that this bug was fixed. I would like that you vote for this bug because it is very important. And I hope that my quick fix helps you! > Inherited plugin executed twice if child pom merges configuration > ----------------------------------------------------------------- > > Key: MNG-2237 > URL: http://jira.codehaus.org/browse/MNG-2237 > Project: Maven 2 > Type: Bug > Components: Inheritence and Interpolation > Versions: 2.0.4 > Reporter: Joerg Schaible > > > According the docs the configuration of a plugin is merged, when the plugin > is inherited. This actually hapens, but the plugin with the merged > configuration is added twice in the effective-pom and therefore executed > twice. > Setup a parent pom with a plugin configuration to attach the javadocs: > {noformat} > <plugin> > <groupId>org.apache.maven.plugins</groupId> > <artifactId>maven-javadoc-plugin</artifactId> > <executions> > <execution> > <id>attach-javadocs</id> > <goals> > <goal>jar</goal> > </goals> > </execution> > </executions> > <inherited>true</inherited> > <configuration> > <linksource>true</linksource> > </configuration> > </plugin> > {noformat} > and a child pom that adds additional elements in the configuration: > {noformat} > <plugin> > <artifactId>maven-javadoc-plugin</artifactId> > <configuration> > <links> > <link>http://java.sun.com/j2se/1.4.2/docs/api/</link> > > <link>http://jakarta.apache.org/commons/logging/commons-logging-1.0.4/docs/apidocs/</link> > <link>http://jmock.codehaus.org/docs/javadoc/</link> > <link>http://www.junit.org/junit/javadoc/3.8.1/</link> > </links> > </configuration> > </plugin> > {noformat} > In this case the javadoc is generated twice, the goal help:effective-pom > reveals, that the plugin was merged, but added twice. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira