Jeffrey Hagelberg created MNG-5426: -------------------------------------- Summary: plugin configuration using alias is ignored for array types Key: MNG-5426 URL: https://jira.codehaus.org/browse/MNG-5426 Project: Maven 2 & 3 Issue Type: Bug Components: Inheritance and Interpolation Affects Versions: 2.0.10 Environment: Windows XP Reporter: Jeffrey Hagelberg
In our pom.xml, we are configuration a plugin using the alias rather than the plugin parameter name. The configuration we are using is something like: <configuration> <models> <model> <groupId>com.ibm.mmi.models</groupId> <artifactId>mmi_compiled_archive</artifactId> <version>${project.version}</version> </model> </models> </configuration> This is configuring the following plugin parameter in our Mojo: /** * * @parameter alias="models" * @required */ private Model[] models_; When we run our build it fails with: [INFO] One or more required plugin parameters are invalid/missing for 'xmeta-installer:deploy-models' [0] Inside the definition for plugin 'xmeta-installer-plugin' specify the following: <configuration> ... <models_>VALUE</models_> </configuration> -OR- <configuration> ... <models>VALUE</models> </configuration> This happens despite the fact that the "models" configuration element is present. I spent some time in a debugger trying to figure out what was going on. I stepped through the logic in DefaultPluginManager.mergeMojoConfiguration and DefaultPluginManager.buildTopDownMergedConfiguration. What I see is that in "fromPom" maven is implicitly adding an <models_/> tag to the configuration in the pom.xml and treating that as the dominant configuration. The logic is merging this tag with the real <models/> tag in the plugin configuration, using that as the "recessive" value. The merge logic only looks at the child elements in the dominant configuration. In this case, there are none, so the merged configuration does not have the configuraition that was put into the pom.xml. Here is what I see in the debugger: pomConfig [ at DefaultPluginManager:1199 ] <configuration> <models> <model> <groupId>com.ibm.mmi.models</groupId> <artifactId>mmi_compiled_archive</artifactId> <version>9.2-SNAPSHOT</version> </model> </models> <models_/> </configuration> dominant parameter seen in buildTopDownMergedConfiguration: <models_> </models_> recessive parameter seen in buildTopDownMergedConfiguration: <models> <model> <groupId>com.ibm.mmi.models</groupId> <artifactId>mmi_compiled_archive</artifactId> <version>9.2-SNAPSHOT</version> </model> </models> result of buildTopDownMergedConfiguration: <models_> </models_> -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira