I have a multimodule project that I want to deploy a site for, but it seems like my site deployment configuration is not being inherited by subproject child modules.
On the filesystem they are located relative to each other:
/parent/
/moduleA/
/moduleB/
When I run:
mvn site-deploy -P documentation
My parent project is deployed properly to:
But none of the subprojects like moduleA or moduleB is deployed there as I'd expect if child modules inherit parent distributionManagement:
Here's my parent pom.xml, I removed some extraneous details and report plugins (I included my javadoc plugin which is a bit funky using APIViz and aggregate to ensure aggregate parent javadocs and child javadocs use APIViz properly.):
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.webwars</groupId>
<artifactId> parent</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<name>parent</name>
<distributionManagement>
<site>
<id>webwarsDev.website</id>
<url>scp://devServer/documentation/webwars/</url>
</site>
</distributionManagement>
<modules>
<module>../moduleA</module>
<module>../moduleB</module>
</modules>
<profiles>
<profile>
<id>documentation</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<executions>
<execution>
<id>verify_pmd</id>
<phase>verify</phase>
<goals>
<goal>pmd</goal>
</goals>
<configuration>
<linkXref>true</linkXref>
<minimumTokens>20</minimumTokens>
<targetJdk>1.6</targetJdk>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.1.2</version>
<reportSets>
<reportSet>
<reports>
<report>project-team</report>
<report>cim</report>
<report>scm</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.6.1</version>
<configuration>
<!-- Default configuration for all reports -->
<detectOfflineLinks>true</detectOfflineLinks>
<!--
<detectLinks>true</detectLinks>
-->
<detectJavaApiLink>true</detectJavaApiLink>
<linksource>true</linksource>
<useStandardDocletOptions>true</useStandardDocletOptions>
<charset>UTF-8</charset>
<encoding>UTF-8</encoding>
<docencoding>UTF-8</docencoding>
<breakiterator>true</breakiterator>
<version>true</version>
<author>true</author>
<keywords>true</keywords>
<minmemory>128m</minmemory>
<maxmemory>512m</maxmemory>
<doclet>org.jboss.apiviz.APIviz</doclet>
<docletArtifact>
<groupId>org.jboss.apiviz</groupId>
<artifactId>apiviz</artifactId>
<version>1.3.0.GA</version>
</docletArtifact>
<additionalparam>
-charset UTF-8
-docencoding UTF-8
-version
-author
-breakiterator
-linksource
-sourcetab 4
-windowtitle "${project.name} ${project.version} API Reference"
-doctitle "${project.name} ${project.version} API Reference"
-bottom "Copyright © ${project.inceptionYear}-Present ${project.organization.name}. All Rights Reserved."
-link http://java.sun.com/javase/6/docs/api/
</additionalparam>
</configuration>
<reportSets>
<reportSet>
<id>non-aggregate</id>
<configuration>
<!-- Specific configuration for the non aggregate report -->
<doclet>org.jboss.apiviz.APIviz</doclet>
<docletArtifact>
<groupId>org.jboss.apiviz</groupId>
<artifactId>apiviz</artifactId>
<version>1.3.0.GA</version>
</docletArtifact>
<additionalparam>
-charset UTF-8
-docencoding UTF-8
-version
-author
-breakiterator
-linksource
-sourcetab 4
-windowtitle "${project.name} ${project.version} API Reference"
-doctitle "${project.name} ${project.version} API Reference"
-bottom "Copyright © ${project.inceptionYear}-Present ${project.organization.name}. All Rights Reserved."
-link http://java.sun.com/javase/6/docs/api/
-sourceclasspath ${project.build.outputDirectory}
</additionalparam>
</configuration>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
<reportSet>
<id>aggregate</id>
<configuration>
<!-- Specific configuration for the aggregate report -->
<doclet>org.jboss.apiviz.APIviz</doclet>
<docletArtifact>
<groupId>org.jboss.apiviz</groupId>
<artifactId>apiviz</artifactId>
<version>1.3.0.GA</version>
</docletArtifact>
<additionalparam>
-charset UTF-8
-docencoding UTF-8
-version
-author
-breakiterator
-linksource
-sourcetab 4
-windowtitle "${project.name} ${project.version} API Reference"
-doctitle "${project.name} ${project.version} API Reference"
-bottom "Copyright © ${project.inceptionYear}-Present ${project.organization.name}. All Rights Reserved."
-link http://java.sun.com/javase/6/docs/api/
</additionalparam>
</configuration>
<reports>
<report>aggregate</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<configuration>
<linkJavadoc>true</linkJavadoc>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<configuration>
<formats>
<format>xml</format>
<format>html</format>
</formats>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>2.1</version>
</plugin>
</plugins>
</reporting>
</profile>
</profiles>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
I've tried defining explicit distributionManagement in each subproject module, which deploy properly except for some reason the child subproject site won't have an index.html??
I don't have any src/site/ files like src/site/site.xml or src/site/apt/index.apt.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.webwars</groupId>
<artifactId>parent</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../parent</relativePath>
</parent>
<groupId>com.webwars</groupId>
<artifactId>moduleA</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>moduleA</name>
<distributionManagement>
<site>
<id>webwarsDev.website</id>
<url>scp://devServer/documentation/webwars/moduleA</url>
</site>
</distributionManagement>
Put your static pages in the resources directory, ${basedir}/src/site/resources.
To generate a site, just run mvn site:site or mvn site. To view the generated site on a local machine, run mvn site:run. This command will deploy the site to a Jetty web server at the address localhost:8080.
Yes you can use Maven Profiles to manage this. Obviously you can tweak this approach to suit your needs however works best.
The Maven Project Info Reports plugin is used to generate reports information about the project.
I may be wrong but I think that you need to configure the maven-project-info-reports-plugin to generate the "index" report which is currently not the case (you've configured it to generate project-team, cim and scm reports only). You need to add the index report:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.1.2</version>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>project-team</report>
<report>cim</report>
<report>scm</report>
</reports>
</reportSet>
</reportSets>
</plugin>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With