<?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 name="Maven Archetype Plugin">
  <bannerLeft>
    <name>Maven Archetype Plugin</name>
    <src>http://maven.apache.org/images/apache-maven-project-2.png</src>
    <href>http://maven.apache.org/</href>
  </bannerLeft>
  <bannerRight>
    <src>http://maven.apache.org/images/maven-logo-2.gif</src>
  </bannerRight>
  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-stylus-skin</artifactId>
  </skin>
  <publishDate format="dd MMM yyyy" position="left" />
  <version position="left" />
  <body>
    <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="Maven 2.x Plugins" href="http://maven.apache.org/plugins/"/>
      <item name="Continuum" href="http://maven.apache.org/continuum"/>
      <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 name="Overview">
      <item name="Introduction" href="index.html"/>
      <item name="Usage" href="usage.html"/>
      <item name="Goals" href="plugin-info.html"/>      
      <item name="FAQ" href="faq.html"/>
    </menu>
    <!--menu name="Examples">
      <item name="Specifying the Remote Repositories" href="/examples/remote-repositories.html"/>
      <item name="Creating a Simple Java Application" href="/examples/simple.html"/>
	  <item name="Creating a Site" href="/examples/site.html"/>
      <item name="Creating a Simple j2ee Project" href="/examples/j2ee-simple.html"/>
	  <item name="Creating a Webapp" href="/examples/webapp.html"/>
	  <item name="Creating a Portlet" href="/examples/portlet.html"/>
      <item name="Creating a Mojo" href="/examples/mojo.html"/>
	  <item name="Creating your own Archetype" href="/examples/archetype.html"/>
    </menu-->
    ${reports}
  </body>
</project>
