<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="Maven">
  <bannerLeft>
    <name>Maven</name>
    <src>images/apache-maven-project-2.png</src>
    <href>http://maven.apache.org/</href>
  </bannerLeft>
  <bannerRight>
    <src>images/maven-logo-2.gif</src>
  </bannerRight>
  <publishDate format="dd MMM yyyy" />
  <skin>
    <groupId>org.apache.maven.skins</groupId>
    <artifactId>maven-stylus-skin</artifactId>
  </skin>
  <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="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>

    <head>
      <script src="http://www.google-analytics.com/urchin.js" type="text/javascript">
      </script>
      <script type="text/javascript">
        _uacct = "UA-140879-1";
        urchinTracker();
		function expand( item ) {
			var expandIt = document.getElementById( item );
			if( expandIt.style.display == "block" ) {
				expandIt.style.display = "none";
				expandIt.parentNode.className = "collapsed";
			} else {
				expandIt.style.display = "block";
				expandIt.parentNode.className = "expanded";
			}
		}
	  </script>
    </head>

    <menu name="Get Maven">
      <item name="Download" href="/download.html"/>
      <item name="Release Notes" href="/release-notes.html"/>
      <item name="Tools">
        <item name="Eclipse Plug-in" href="/eclipse-plugin.html"/>
        <item name="Netbeans Module" href="/netbeans-module.html"/>      
      </item>
	</menu>

    <menu name="Documentation">
      <item name="Quick Start" href="/quick.html" />
	  <item name="User Guides">
        <!-- item name="Concepts">
		  	<item name="POM" href="/concepts.html#pom" />
			<item name="Artifacts" href="/concepts.html#artifacts" />
			<item name="Lifecycle" href="/concepts.html#lifecycle" />
			<item name="Repositories" href="/concepts.html#repositories" />
			<item name="Plugins" href="/concepts.html#plugins" />
			<item name="Conventions" href="/concepts.html#conventions" />
			<item name="Archetypes" href="/concepts.html#archetypes" />
			<item name="Multimodule" href="/concepts.html#multimodule" />
			<item name="Sites" href="/concepts.html#sites" />
			<item name="Reports" href="/concepts.html#reports" />
		</item -->
        <item name="Getting Started" href="/guides/getting-started/index.html" />
	    <!-- item name="Build Cookbook" href="/" / -->
	    <item name="POM Reference" href="/pom.html" />
	    <item name="Profiles Reference" href="/pom.html#Profiles" />
	    <item name="Settings Reference" href="/settings.html" />
	    <item name="Wiki" href="http://docs.codehaus.org/display/MAVENUSER" /> 
	  </item>

	  <item name="Plugin Developer Guides">
	    <item name="Your First Mojo" href="/guides/plugin/guide-java-plugin-development.html" />
	    <!-- item name="Plugin Cookbook" href="/" / -->
	    <item name="Mojo API" href="/developers/mojo-api-specification.html" />
	    <!-- item name="Maven API" href="/" / -->
	  </item>

	  <item name="Plugins">
	    <item name="By Category" href="/plugins/index.html" />
	    <!-- item name="By Host" href="/" / -->
	    <item name="Search" href="http://www.mvnrepository.com/" />
	  </item>

  	  <item name="Documentation Index">
	    <item name="By Category" href="/guides/index.html" />
	    <!-- item name="Alphabetical" href="/" / -->
	  </item>

	  <item name="Books and Articles" href="/articles.html" />
	</menu>

	<menu name="Community">
	  <item name="Community Overview" href="/community.html"/>
      <item name="How to Contribute" href="/guides/development/guide-helping.html"/>
      <item name="Maven Repository">
		<item name="How to Help" href="/guides/mini/guide-maven-evangelism.html" />
        <item name="Central Repo" href="http://repo1.maven.org/maven2/" />
        <item name="Codehaus Repo" href="http://repository.codehaus.org/" />
      </item>
	  <item name="Getting Support" href="/mail-lists.html" />
    </menu>

    <menu name="About">
      <item name="What is Maven?" href="/what-is-maven.html"/>
      <item name="Features" href="/maven-features.html"/>
      <item name="FAQ" href="/general.html"/>
      <item name="Powered By" href="/powered-by-m2.html"/>
    </menu>

<!-- The "Project Documentation" section detracts from the Documentation above -->
<!--    ${reports} -->
  </body>
</project>
