<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  ~ 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.
  -->

<project>
  <bannerLeft>
    <name>Maven</name>
    <src>http://maven.apache.org/maven2/images/apache-maven-project-2.png</src>
    <href>http://maven.apache.org/</href>
  </bannerLeft>
  <bannerRight>
    <src>http://maven.apache.org/maven2/images/maven-logo-2.gif</src>
  </bannerRight>

  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-stylus-skin</artifactId>
    <version>1.0.1</version>
  </skin>

  <publishDate format="yyyy-MM-dd" position="left" />
  <version position="left" />

  <body>
    <head>
      <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
      </script>
      <script type="text/javascript">
        _uacct = "UA-140879-1";
        urchinTracker();
      </script>
    </head>

    <links>
      <item name="Apache" href="http://www.apache.org/"/>
      <item name="Maven 1.x" href="http://maven.apache.org/maven-1.x"/>
      <item name="Maven 2.x" href="http://maven.apache.org/"/>
      <item name="SCM" href="http://maven.apache.org/scm"/>
      <item name="Wagon" href="http://maven.apache.org/wagon"/>
      <item name="JXR" href="http://maven.apache.org/jxr"/>
      <item name="Doxia" href="http://maven.apache.org/doxia"/>
    </links>

    <menu ref="modules" />

    <menu name="Quick Links">
      <item name="Home" href="/index.html"/>
      <item name="Maven SCM Plugin" href="/maven-scm-plugin/index.html"/>
      <item name="Javadoc" href="/apidocs/index.html"/>
      <item name="SCM URL Format" href="/scm-url-format.html"/>
      <item name="Supported SCMs" href="/scms-overview.html" collapse="true">
        <item name="Accurev" href="/accurev.html"/>
        <item name="Bazaar" href="/bazaar.html"/>
        <item name="Mercurial" href="/mercurial.html"/>
        <item name="Clearcase" href="/clearcase.html"/>
        <item name="CM Synergy" href="/synergy.html"/>
        <item name="CVS" href="/cvs.html"/>
        <item name="Git" href="/git.html"/>
        <item name="Local" href="/local.html"/>
        <item name="Perforce" href="/perforce.html"/>
        <item name="StarTeam" href="/starteam.html"/>
        <item name="Subversion" href="/subversion.html"/>
        <item name="Visual Source Safe" href="/vss.html"/>
      </item>
      <item name="Guides" href="/guide/index.html" collapse="true">
        <item name="How to use Maven-SCM in my application" href="/guide/usage.html"/>
        <item name="How to write a new SCM provider" href="/guide/new_provider.html"/>
      </item>
      <item name="SCM Providers Matrix" href="/matrix.html"/>
    </menu>

    <menu ref="reports"/>
  </body>
</project>
