views:

943

answers:

1

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.

  • parent
    • moduleA
    • moduleB

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:

  • scp://devServer/documentation/webwars/

But none of the subprojects like moduleA or moduleB is deployed there as I'd expect if child modules inherit parent distributionManagement:

  • scp://devServer/documentation/webwars/moduleA
  • scp://devServer/documentation/webwars/moduleB

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"&gt;
    <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>
+1  A: 

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>
Pascal Thivent