Adding publish script and checkout part
diff --git a/README.adoc b/README.adoc
new file mode 100644
index 0000000..0b92a52
--- /dev/null
+++ b/README.adoc
@@ -0,0 +1,80 @@
+Archiva Site Source Repository
+==============================
+:toc:
+
+This project contains the sources for the main archiva site at https://archiva.apache.org/
+
+You can build the web content and publish it to the content repository archiva-web-content.git.
+
+
+== How to build and publish the pages for the archiva web content
+
+
+The web content parts of this module are published to the path 
+
+  /
+
+=== Use the script
+
+There is a shell script +deploySite.sh+ which you can run to generate the site check and publish to 
+the remote repository. It works only on Linux, on other platforms you have to go the next section.
+
+The script is interactive, it asks you to confirm the publish after generation of the staging part.
+
+.Execute
+
+  ./deploySite.sh 
+
+All arguments are appended to the mvn calls.
+
+=== Run the mvn steps manually
+
+==== Building the pages
+
+You need enough free disk space to publish the web content. The archiva web site repository is big, 
+but the maven build will only checkout the necessary directories for this build (sparse checkout).
+
+For all the commands you have to change to this repository directory:
+
+  cd archiva-site
+
+.The following creates the site and copies the files to the staging folder
+
+  mvn clean site site:stage
+
+The result can be checked in 
+
+  archiva-site/target/staging/
+
+with your browser.
+
+If you would like the use a local checkout of the archiva-web-content.git repository and not push directly
+to the remote repository, you may add this parameter:
+
+  -DsiteRepositoryUrl=scm:git:file:///${path-to-your-local-archiva}/archiva-web-content.git
+
+where +${path-to-your-local-archiva}+ is the path where a bare clone of the archiva-web-content.git is stored.
+
+==== Publish the pages
+
+.This command publishes to the git repository
+
+  mvn scm-publish:publish-scm
+
+After publishing to the git repository the gitpubsub mechanism is transferring it to the HTTP server.
+
+If you would like the use a local checkout of the archiva-web-content.git repository and not push directly
+to the remote repository, you may add this parameter:
+
+  -DsiteRepositoryUrl=scm:git:file:///${path-to-your-local-archiva}/archiva-web-content.git
+
+
+=== Some notes about the build process
+
+A sparse checkout of the git repository will be created in 
+
+ site-content
+
+but only, if the directory +site-content/.git+ does not exist. 
+
+
diff --git a/checkoutSite.sh b/checkoutSite.sh
new file mode 100755
index 0000000..5e582bd
--- /dev/null
+++ b/checkoutSite.sh
@@ -0,0 +1,135 @@
+#!/bin/bash
+#
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+#
+#  Author: Martin Stockhammer <martin_s@apache.org>
+#  Date:   2018-11-03
+#
+# This script runs a sparse git clone of a remote repository and
+# initializes the git configuration.
+#
+# It is mainly used for site content creation, because the main archiva-web-content repository
+# is rather large and we don't want to checkout the complete data.
+#
+
+SITE_DIR=".site-content"
+GIT_REMOTE=""
+
+GIT_USER=$(git config user.name)
+GIT_EMAIL=$(git config user.email)
+
+GIT_PATTERN_FILE="git-sparse-checkout-pattern"
+GIT_PATTERN_DEST=".git/info/sparse-checkout"
+
+MY_PWD=$(pwd)
+
+CLONE=1
+FORCE=1
+MODULE_DIR="${MY_PWD}"
+PATTERN=""
+while [ ! -z "$1" ]; do
+  case "$1" in
+    -f) 
+      FORCE=0
+      shift
+      ;;
+    -d)
+      shift
+      SITE_DIR="$1"
+      shift
+      ;;
+    -p)
+      shift
+      if [ -z "${PATTERN}" ]; then
+        PATTERN="${1}"
+      else
+        PATTERN="${PATTERN}\n${1}"
+      fi
+      shift
+      ;;
+    -m)
+      shift
+      MODULE_DIR="$1"
+      shift
+      ;;
+    *)
+      GIT_REMOTE="$1"
+      shift
+      ;; 
+  esac
+done
+
+print_usage() {
+  echo "checkoutRepo [-m MODULE_DIR] [-d SITE_DIR]  [-f] GIT_URL"
+  echo " -m: The module directory where the pattern file can be found and the site dir will be created."
+  echo " -d SITE_DIR: Use the given directory for checkout"
+  echo " -f: Force clone, even if directory exists"
+}
+
+if [ ! -f "${MODULE_DIR}/pom.xml" ]; then
+  echo "Looks like the working directory is not a valid dir. No pom.xml found."
+  exit 1
+fi
+
+cd "${MODULE_DIR}" || { echo "Could not change to module directory ${MODULE_DIR}"; exit 1; }
+
+if [ -z "$GIT_REMOTE" ]; then
+  print_usage
+  exit 1
+fi
+
+if [ "${GIT_REMOTE:0:8}" == "scm:git:" ]; then
+  GIT_REMOTE="${GIT_REMOTE:8}"
+fi
+
+
+if [ -d "${SITE_DIR}" ]; then
+  if [ ! -d "${SITE_DIR}/.git" ]; then
+    echo "Directory ${SITE_DIR} exist already, but is not a git clone. Aborting."
+    exit 1
+  elif [ "$FORCE" -eq 0 ]; then
+    CLONE=0
+  fi
+else
+  CLONE=0
+fi
+
+if [ $CLONE -eq 0 ]; then
+  git clone "${GIT_REMOTE}" "${SITE_DIR}" --no-checkout
+  if [ $? -ne 0 ]; then
+    echo "Git clone failed"
+    exit 1
+  fi
+fi
+
+cd "${SITE_DIR}" || { echo "Could not change to site dir ${SITE_DIR}"; exit 1; }
+
+git config core.sparsecheckout true
+git config user.name "${GIT_USER}"
+git config user.email "${GIT_EMAIL}"
+
+if [ ! -z "${PATTERN}" ]; then
+    echo -e "${PATTERN}" >"${GIT_PATTERN_DEST}"
+elif [ -f "../${GIT_PATTERN_FILE}" ]; then
+  cp "../${GIT_PATTERN_FILE}" "${GIT_PATTERN_DEST}"
+fi
+
+git checkout --
+
+cd "${MY_PWD}"
+
diff --git a/deploySite.sh b/deploySite.sh
new file mode 100755
index 0000000..fee5a0f
--- /dev/null
+++ b/deploySite.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+#
+#  Licensed to the Apache Software Foundation (ASF) under one
+#  or more contributor license agreements.  See the NOTICE file
+#  distributed with this work for additional information
+#  regarding copyright ownership.  The ASF licenses this file
+#  to you under the Apache License, Version 2.0 (the
+#  "License"); you may not use this file except in compliance
+#  with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+#  Unless required by applicable law or agreed to in writing,
+#  software distributed under the License is distributed on an
+#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+#  KIND, either express or implied.  See the License for the
+#  specific language governing permissions and limitations
+#  under the License.
+#
+#  Author: Martin Stockhammer <martin_s@apache.org>
+#  Date:   2018-11-15
+#
+#  Publishes the site content and generated reports to the web content repository.
+#  It stops after the staging and let you check the content before pushing to the repository
+#
+
+THIS_DIR=$(dirname $0)
+THIS_DIR=$(readlink -f ${THIS_DIR})
+CONTENT_DIR="site-content"
+
+SUB_DIR=""
+
+if [ -d "${CONTENT_DIR}/.git" ]; then
+  git -C "${CONTENT_DIR}" fetch origin
+  git -C "${CONTENT_DIR}" reset --hard origin/master
+fi
+
+echo ">>>> Creating site and reports <<<<" 
+mvn clean site site:stage "$@"
+
+echo "*****************************************"
+echo ">>>> Finished the site stage process <<<<"
+echo "> You can check the content in the folder target/staging or by opening the following url"
+echo "> file://${THIS_DIR}/target/staging/${SUB_DIR}/index.html"
+echo "> "
+echo "> If everything is fine enter yes. After that the publish process will be started."
+echo -n "Do you want to publish (yes/no)? "
+read ANSWER
+
+if [ "${ANSWER}" == "yes" -o "${ANSWER}" == "YES" ]; then
+  echo "> Starting publish process"
+  mvn scm-publish:publish-scm "$@"
+else
+  echo "> Aborting now"
+  echo "> Running git reset in ${CONTENT_DIR} directory"
+  git -C "${CONTENT_DIR}" fetch origin
+  git -C "${CONTENT_DIR}" reset --hard origin/master
+  echo ">>>> Finished <<<<"
+fi
+
diff --git a/git-sparse-checkout-pattern b/git-sparse-checkout-pattern
new file mode 100644
index 0000000..14731a1
--- /dev/null
+++ b/git-sparse-checkout-pattern
@@ -0,0 +1,4 @@
+/*
+!/ref
+!/redback
+!/docs
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index edb7074..fa85cd6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -48,7 +48,9 @@
     <scmPubCheckoutDirectory>site-content</scmPubCheckoutDirectory>
 
     <newUiDocVersion>${archivaReleaseVersion}</newUiDocVersion>
-    <svnUrl>https://svn.apache.org/repos/asf/archiva/site-content</svnUrl>
+
+    <siteRepositoryUrl>scm:git:https://gitbox.apache.org/repos/asf/archiva-web-content-INVALID.git</siteRepositoryUrl>
+
   </properties>
 
   <organization>
@@ -65,7 +67,7 @@
   <distributionManagement>
     <site>
       <id>apache.website.svnpub</id>
-      <url>scm:svn:${svnUrl}</url>
+      <url>${siteRepositoryUrl}</url>
     </site>
   </distributionManagement>
 
@@ -146,11 +148,11 @@
         <reportSets>
           <reportSet>
             <reports>
-              <report>cim</report>
-              <report>mailing-list</report>
-              <report>issue-tracking</report>
-              <report>license</report>
-              <report>project-team</report>
+              <report>ci-management</report>
+              <report>mailing-lists</report>
+              <report>issue-management</report>
+              <report>licenses</report>
+              <report>team</report>
               <report>scm</report>
             </reports>
           </reportSet>
@@ -165,41 +167,43 @@
   </reporting>
 
   <profiles>
+    <!--
+    This runs a sparse git checkout for the web site content repository that contains only the doc directory.
+    The profile is activated only, if the checkout directory does not exist.
+    The executor runs a shell script.
+    -->
     <profile>
-      <id>setup-checkout</id>
+      <id>site-checkout</id>
       <activation>
         <file>
-          <missing>site-content</missing>
+          <missing>${scmPubCheckoutDirectory}</missing>
         </file>
       </activation>
       <build>
         <plugins>
           <plugin>
-            <groupId>org.apache.maven.plugins</groupId>
-            <artifactId>maven-antrun-plugin</artifactId>
-            <version>1.7</version>
+            <groupId>org.codehaus.mojo</groupId>
+            <artifactId>exec-maven-plugin</artifactId>
+            <version>1.6.0</version>
+            <inherited>false</inherited>
             <executions>
               <execution>
                 <id>prepare-checkout</id>
                 <phase>pre-site</phase>
                 <goals>
-                  <goal>run</goal>
+                  <goal>exec</goal>
                 </goals>
                 <configuration>
-                  <target>
-                    <property name="plugin_classpath" refid="maven.plugin.classpath"/> 
-                    <ant antfile="${basedir}/build.xml" />
-                  </target>                  
+                  <executable>checkoutSite.sh</executable>
+                  <workingDirectory>${project.basedir}</workingDirectory>
+                  <arguments>
+                    <argument>-d</argument>
+                    <argument>${scmPubCheckoutDirectory}</argument>
+                    <argument>${siteRepositoryUrl}</argument>
+                  </arguments>
                 </configuration>
               </execution>
             </executions>
-            <dependencies>
-              <dependency>
-                <groupId>org.tmatesoft.svnkit</groupId>
-                <artifactId>svnkit-cli</artifactId>
-                <version>${svnkit.version}</version>
-              </dependency>
-            </dependencies>
           </plugin>
         </plugins>
       </build>