You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Eric Dalquist (JIRA)" <ji...@codehaus.org> on 2011/09/22 22:25:21 UTC
[jira] Updated: (MSITE-484) Support adding and overriding report
plugins in new maven-site-plugin 3.x reportPlugins configuration format
[ https://jira.codehaus.org/browse/MSITE-484?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eric Dalquist updated MSITE-484:
--------------------------------
Attachment: MSITE-484.patch
This patch provides robust support for merging PlexusConfiguration objects. I've included a unit test which demonstrates the functionality and have tested it locally with various plugin overlays with great success.
For example if the parent pom's maven-site-plugin is:
{code:xml}
<plugin>
<artifactId>maven-site-plugin</artifactId>
<configuration>
<reportPlugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8</version>
<configuration>
<links>
<link>http://java.sun.com/javase/6/docs/api/</link>
<link>http://java.sun.com/javaee/5/docs/api/</link>
</links>
<source>1.6</source>
</configuration>
</plugin>
</reportPlugins>
</configuration>
</plugin>
{code}
And the child project pom's maven-site-plugin is:
{code:xml}
<plugin>
<artifactId>maven-site-plugin</artifactId>
<configuration>
<defaultMergePolicy>MERGE</defaultMergePolicy>
<reportPlugins combine.children="append">
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<links mergePolicy.children="BOTH" mergePolicy.removeDuplicates="true">
<link>http://static.springsource.org/spring/docs/3.0.x/api/</link>
<link>http://ehcache.org/apidocs/</link>
<link>http://aopalliance.sourceforge.net/doc/</link>
<link>http://java.sun.com/javase/6/docs/api/</link>
</links>
<maxmemory>768m</maxmemory>
</configuration>
</plugin>
</reportPlugins>
</configuration>
</plugin>
{code:xml}
The runtime effective result is:
{code:xml}
<plugin>
<artifactId>maven-site-plugin</artifactId>
<configuration>
<defaultMergePolicy>MERGE</defaultMergePolicy>
<reportPlugins combine.children="append">
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<links mergePolicy.children="BOTH" mergePolicy.removeDuplicates="true">
<link>http://static.springsource.org/spring/docs/3.0.x/api/</link>
<link>http://ehcache.org/apidocs/</link>
<link>http://aopalliance.sourceforge.net/doc/</link>
<link>http://java.sun.com/javase/6/docs/api/</link>
<link>http://java.sun.com/javaee/5/docs/api/</link>
</links>
<source>1.6</source>
<maxmemory>768m</maxmemory>
</configuration>
</plugin>
</reportPlugins>
</configuration>
</plugin>
{code}
> Support adding and overriding report plugins in new maven-site-plugin 3.x reportPlugins configuration format
> ------------------------------------------------------------------------------------------------------------
>
> Key: MSITE-484
> URL: https://jira.codehaus.org/browse/MSITE-484
> Project: Maven 2.x and 3.x Site Plugin
> Issue Type: Bug
> Components: inheritance, Maven 3
> Affects Versions: 3.0-beta-1, 3.0-beta-2, 3.0-beta-3
> Environment: 3.0-beta-1-SNAPSHOT
> Reporter: Michael Pilquist
> Assignee: Olivier Lamy
> Fix For: 3.1
>
> Attachments: MSITE-484.patch, site-cfg-inheritance.zip
>
>
> 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:
> {code}
> [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
> {code}
> 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.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira