Site plugin with maven 3.x
Due to MNG-4162, all reporting logic has been removed from trunk.
So a branch of the site plugin has been created https://svn.apache.org/repos/asf/maven/plugins/branches/maven-site-plugin-3.x/ in order to have a site plugin working with maven 3.x.
Using previous versions of maven-site-plugin with Maven 3.x won't generate any report from any report plugin: only hand-written Doxia documents (apt, xdoc, ...) will be rendered.
Plugins Compatibility Matrix
Plugins Maintained by the Apache Maven Community
Tests have been made on the reporting profile of the maven parent pom which enables some reports.
Some of those plugins will need releases to work with maven 3.x:
Plugin |
Version |
Status |
Comments |
---|---|---|---|
maven-javadoc-plugin |
2.6.1 |
|
some its failed MJAVADOC-181: need more investiguation |
maven-project-info-reports-plugin |
2.1.2 |
(dependencies report) |
need a release due to a use of plexusContainer.getLoggerManager() which has been removed see MPIR-174 |
surefire-report |
2.4.3 |
|
|
jxr |
2.1 |
|
|
maven-changelog-plugin |
2.1 |
|
|
maven-changes-plugin |
2.1 |
|
|
maven-checkstyle-plugin |
2.5 |
see MCHECKSTYLE-123 |
|
maven-plugin-plugin |
2.5.1 |
|
|
maven-pmd-plugin |
2.4 |
|
Plugins Maintained by the Mojo Community
Plugin |
Version |
Status |
Comments |
---|---|---|---|
cobertura-maven-plugin |
2.3 |
|
|
emma-maven-plugin |
1.0-alpha-2 |
|
|
findbugs-maven-plugin |
2.3.1 |
|
|
Known issues
What need to be released
- maven-shared-jar : 1.1
- maven-reporting-impl : 2.1
- maven-project-info-reports-plugin : 2.2
- maven-site-plugin : 3.0-beta-1 (from 3.x branch)
Configuration format.
The current reporting section of the pom have to be moved in a new site plugin configuration.
The proposal is to have a configuration as much similar as possible with the current one.
The model builder will transform it on the fly, displaying a warning concerning this change. (as of Maven 3.0-alpha-6, on the fly transformation seems ok, but without warning)
Old configuration
<reporting> <excludeDefaults>true</excludeDefaults> <outputDirectory></outputDirectory> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version><at:var at:name="projectInfoReportsPluginVersion" /></version> <configuration> <dependencyDetailsEnabled>false</dependencyDetailsEnabled> <dependencyLocationsEnabled>false</dependencyLocationsEnabled> <filters> <filter>+hello.*</filter> <filter>+byebye.*</filter> </filters> </configuration> <reportSets> <reportSet> <reports> <report>foo</report> </reports> <configuration> <dependencyDetailsEnabled>true</dependencyDetailsEnabled> <dependencyLocationsEnabled>true</dependencyLocationsEnabled> <filters> <filter>+foo.*</filter> <filter>+toto.*</filter> </filters> </configuration> </reportSet> <reportSet> <reports> <report>toto</report> </reports> </reportSet> <configuration> <dependencyDetailsEnabled>true</dependencyDetailsEnabled> <dependencyLocationsEnabled>true</dependencyLocationsEnabled> <filters> <filter>+foo.*</filter> <filter>+toto.*</filter> </filters> </configuration> </reportSets> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${javadocPluginVersion}</version> </plugin> </plugins> </reporting>
New Configuration
Not yet implemented
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> <version>@project.version@</version> <configuration> ..... <reportPlugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> <version><at:var at:name="projectInfoReportsPluginVersion" /></version> <configuration> <dependencyDetailsEnabled>false</dependencyDetailsEnabled> <dependencyLocationsEnabled>false</dependencyLocationsEnabled> </configuration> <reports> <report>foo</report> <report>toto</report> </reports> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>${javadocPluginVersion}</version> </plugin> </reportPlugins> </configuration> </plugin> </plugins>
Version Resolution
Report Plugin version can be empty. The following order/strategy will be used to find/resolve a version:
- search same groupId/artifactId in the build.plugins section.
- search same groupId/artifactId in the build.pluginManagement.plugins section
- resolve with current repositories (can include auto SNAPSHOT resolution)