[ 
http://jira.codehaus.org/browse/MNG-2591?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

John Casey closed MNG-2591.
---------------------------

    Resolution: Fixed

I'll add a new FAQ entry for this, but essentially it's doing the right thing 
by default. Since plugin configurations are handled as XML DOM instances by the 
core, there is an ever-present struggle between when to merge child elements' 
values with one another (when the child's <source> overrides the parent's, for 
example), and when you want to append new child elements to the existing list 
(as in the example above, or any time you have a list of items to aggregate 
during inheritance).

We've solved this problem using an attribute, 'combine.children'. You simply 
specify this attribute, with the value of "append" at the parent element where 
such aggregation should occur, and Maven will switch its merge behavior for 
that element's children.

NOTE: I fixed this behavior in Maven's trunk; previously, it had been putting 
the parent POM's sub-elements AFTER those of the child. This is inconsistent 
with other inheritance functions, so I've reversed the ordering to truly append 
the child's elements.

So, to recap:

parent:

{code:xml}
<configuration>
  <items>
      <item>one</item>
      <item>two</item>
  </items>
</configuration>
{code}

child:

{code:xml}
<configuration>
  <items combine.children="append">
    <item>three</item>
  </items>
</configuration>
{code}

result:

{code:xml}
<configuration>
  <items>
    <item>one</item>
    <item>two</item>
    <item>three</item>
  </items>
</configuration>
{code}

(If you're using an earlier version of Maven than the present trunk, order will 
be three, one, two.)

Revision IDs affecting this change are:

plexus-utils: revId 6546
maven-project: revId 513038

I also added a couple unit tests to org.apache.maven.project.ModelUtilsTest in 
maven-project/src/test/java to cover these cases.


> Plugins are merged incorrectly
> ------------------------------
>
>                 Key: MNG-2591
>                 URL: http://jira.codehaus.org/browse/MNG-2591
>             Project: Maven 2
>          Issue Type: Bug
>    Affects Versions: 2.0.4
>         Environment: Windows XP
>            Reporter: Allan Shoup
>            Assignee: John Casey
>         Attachments: effective-child-pom.xml, test-poms.zip
>
>
> This bug is similar to 
> http://jira.codehaus.org/browse/MANTRUN-57;jsessionid=awtyLFBPEQN6vVmwu4 - 
> the difference being the plugins are not correctly merged.
> In the parent's POM, the following was defined:
> <build>
> <pluginManagement>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-eclipse-plugin</artifactId>
> <configuration>
> <downloadSources>true</downloadSources>
> <additionalBuildcommands>
> <buildcommand>
> parentBuildCommand
> </buildcommand>
> </additionalBuildcommands>
> </configuration>
> </plugin>
> </plugins>
> </pluginManagement>
> </build>
> in the child's POM, the following was defined.
> <build>
> <pluginManagement>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-eclipse-plugin</artifactId>
> <configuration>
> <additionalBuildcommands>
> <buildcommand>
> childBuildCommand
> </buildcommand>
> </additionalBuildcommands>
> </configuration>
> </plugin>
> </plugins>
> </pluginManagement>
> </build>
> I expect the effective POM to look like this:
> <build>
> <pluginManagement>
> <plugins>
> <plugin>
> <artifactId>maven-eclipse-plugin</artifactId>
> <configuration>
> <additionalBuildcommands>
> <buildcommand>
> parentBuildCommand
> </buildcommand>
> <buildcommand>
> childBuildCommand
> </buildcommand>
> </additionalBuildcommands>
> <downloadSources>true</downloadSources>
> </configuration>
> </plugin>
> </plugins>
> </pluginManagement>
> </build>
> Outside of the common problem of the <plugin> element being duplicated, 
> here's the issue this bug is trying to address:
> In the effective pom, the the <downloadSources> element was correctly merged, 
> however, the <buildCommand> element was not. It seems like the merging only 
> correctly happens down to a given level.
> I noticed that 
> http://jira.codehaus.org/browse/MNG-2297;jsessionid=awtyLFBPEQN6vVmwu4 has a 
> patch attached, so this may be fixed in 2.0.5, I just wanted to raise the use 
> case in case that patch did not address this specific problem.
> I'm attaching the POMs needed to reproduce the problem and the effective POM 
> for the child.

-- 
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

        

Reply via email to