Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 3.0-beta-1, 3.0-beta-2, 3.0-beta-3, 3.3
-
Fix Version/s: backlog
-
Component/s: inheritance, Maven 3
-
Labels:None
-
Environment:3.0-beta-1-SNAPSHOT
-
Number of attachments :
Description
When using the new configuration format for reportPlugins, it appears that there's no way to:
- Add a report plugin to a submodule
- Override the configuration of a report plugin in a submodule
Using the old <reporting> section, both of these use cases were supported. For large, multi-module builds, it is problematic having to respecify all reporting plugins in any submodule pom that needs to either add an additional reporting plugin or change the configuration of a reporting plugin.
Attached is a sample project that has a parent POM configured with project-info-reports and javadoc plugin and a submodule configured with jxr plugin and javadoc plugin. The relevant output is here:
[INFO] ------------------------------------------------------------------------ [INFO] Building parent 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.3:clean (default-clean) @ parent --- [INFO] Deleting file set: /Users/mpilquist/Downloads/site-parent-issue/target (included: [**], excluded: []) [INFO] [INFO] --- maven-site-plugin:3.0-beta-1-SNAPSHOT:site (default-site) @ parent --- [INFO] configuring reportPlugin org.apache.maven.plugins:maven-project-info-reports-plugin:2.2 [INFO] configuring reportPlugin org.apache.maven.plugins:maven-javadoc-plugin:2.6.1 ... [INFO] ------------------------------------------------------------------------ [INFO] Building parent-usage-test 1.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.3:clean (default-clean) @ parent-usage-test --- [INFO] [INFO] --- maven-site-plugin:3.0-beta-1-SNAPSHOT:site (default-site) @ parent-usage-test --- [INFO] configuring reportPlugin org.apache.maven.plugins:maven-jxr-plugin:2.1 [INFO] configuring reportPlugin org.apache.maven.plugins:maven-javadoc-plugin:2.6.1
Looking at the maven-site-plugin code, it appears the the reportPlugins parameter is just a regular array parameter. AFAIK, there's no way to merge list configuration items. Other plugins have worked around this by defining additional mojo parameters (e.g., maven-eclipse-plugin and buildCommands / additionalBuildCommands – http://maven.apache.org/plugins/maven-eclipse-plugin/eclipse-mojo.html). This isn't the most flexible option though as it only solves 1 level inheritance.
Issue Links
- depends upon
-
MNG-4856
DefaultReportingConverter create incorrect site plugin configuration
-
- is duplicated by
-
MSITE-653
Wrong report set inherited from super POM
-
- is related to
-
MSITE-596
inheritedReports IT fails
-
-
MNG-5477
"malformed POM" warning issued when no version in reporting section
-
- relates to
-
MNG-4162
Removal of all reporting logic from the core of Maven
-
What you have to do is to add to indicate how to merge site plugin configuration when maven build the model
in the child pom, you can change to ( attribute combine.children="append" )
btw this doesn't fix overriding configuration, with this trick some plugins can be executed more than one time