+++ /dev/null
-Maven Site is a handy tool for auto-generating a website containing site
-details for your project based on information scanned from project pom files.
-It can also be used to auto-generate coverage reports and Javadoc pages. This
-page will describe how to generate a Maven site for your ODL project.
-
-* [Enable Maven Site generation](#enable_site)
-* [Fix site urls](#fix_site_urls)
-* [Customize project site](#customize_site)
-
-## <a name="enable_site">Enabling Maven Site generation</a>
-
-The odlparent project provides most of the necessary configuration already to
-generate a Maven site for all ODL projects but the site generation is disabled
-by default. In order to enable site generation you will need to create a file
-called "deploy-site.xml" in the root of your project repo. This file's
-existance will cause the Maven build as well as ODL Jenkins system to start
-generating and deploying the site to Nexus.
-
-Below is an example configuration you can copy to create the deploy-site.xml
-this file is not too complicated and the only thing you need to change is to
-ensure that the \<groupId\> is configured to use your project's namespace.
-
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- vi: set et smarttab sw=2 tabstop=2: -->
- <!--
- Copyright (c) 2015 The Linux Foundation and others. All rights reserved.
-
- This program and the accompanying materials are made available under the
- terms of the Eclipse Public License v1.0 which accompanies this distribution,
- and is available at http://www.eclipse.org/legal/epl-v10.html
- -->
- <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/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
-
- <groupId>org.opendaylight.PROJECT</groupId>
- <artifactId>deploy-site</artifactId>
- <version>1.0.0-SNAPSHOT</version>
- <packaging>pom</packaging>
-
- <properties>
- <stream>latest</stream>
- <nexus.site.url>dav:https://nexus.opendaylight.org/content/sites/site/${project.groupId}/${stream}/</nexus.site.url>
- </properties>
-
- <build>
- <extensions>
- <extension>
- <groupId>org.apache.maven.wagon</groupId>
- <artifactId>wagon-webdav-jackrabbit</artifactId>
- <version>2.9</version>
- </extension>
- </extensions>
-
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <version>3.4</version>
- <configuration>
- <inputDirectory>${project.build.directory}/staged-site</inputDirectory>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}</url>
- </site>
- </distributionManagement>
- </project>
-
-Note that the above file is a dummy file who's only purpose is to push a
-staged-site to Nexus as well as being the trigger for odlparent to activate
-site generation for your project.
-
-## <a name="fix_site_urls">Fix Maven Site URLs</a>
-
-The maven-site-plugin assumes projects are configured in a certain Maven way
-which unfortunately ODL is not configured as such. This causes the site plugin
-to generate invalid URLs to all project modules. The workaround for this is to
-pass both a url and a distribution.site.url for every single module in your
-Maven project. The following template should be placed into all modules in an
-ODL project with the exception of the root pom (this will be explained below the
-example).
-
- <!--
- Maven Site Configuration
-
- The following configuration is necessary for maven-site-plugin to
- correctly identify the correct deployment path for OpenDaylight Maven
- sites.
- -->
- <url>${odl.site.url}/${project.groupId}/${stream}/${project.artifactId}/</url>
-
- <distributionManagement>
- <site>
- <id>opendaylight-site</id>
- <url>${nexus.site.url}/${project.artifactId}/</url>
- </site>
- </distributionManagement>
-
-**Note:** For the project root pom.xml remove the final path
-"${project.artifactId}" from both URLs. This is so that the root project
-can represent the root index page for your project when the Maven Site is
-deployed.
-
-## <a name="customize_site">Customize project site</a>
-
-In the root pom of your project you can create customized site including
-creating your own project Documentation via markdown (or other formats)
-using the maven-site-plugin. Please refer to Maven Site documentation for
-how to customize your site.
-
-The general documentation can be found here
-https://maven.apache.org/plugins/maven-site-plugin/
-
-The following pages are particularly useful regarding creating your site
-content:
-
- * https://maven.apache.org/plugins/maven-site-plugin/examples/creating-content.html
- * https://maven.apache.org/plugins/maven-site-plugin/examples/sitedescriptor.html
-
-## <a name="aggregate_apidocs">Aggregating Java apidocs</a>
-
-Javadoc is generated automatically for each bundle however to aggregate them
-all into a single convenient url we need to ensure that the root pom has a
-profile to activate it. The following should be copied into the profiles
-section of the project root pom.
-
- <profiles>
- <profile>
- <!--
- This profile is to ensure we only build javadocs reports
- when we plan to deploy Maven site for our project.
- -->
- <id>maven-site</id>
- <activation>
- <file>
- <exists>${user.dir}/deploy-site.xml</exists>
- </file>
- </activation>
-
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-javadoc-plugin</artifactId>
- <inherited>false</inherited>
- <executions>
- <execution>
- <id>aggregate</id>
- <goals>
- <goal>aggregate</goal>
- </goals>
- <phase>package</phase>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>