~~ 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.

 -----
 Introduction
 -----
 Hervé Boutemy
 -----
 2013-07-27
 -----

Maven Core

 Maven Core classes managing the whole build process.

* Reference Documentation

 * {{{./lifecycles.html}lifecycles}} and {{{./default-bindings.html}plugin bindings to <<<default>>> lifecycle}},

 * {{{./artifact-handlers.html}default artifact handlers}}, to manage {{{../maven-model/maven.html#class_dependency}dependency types}},

 * {{{./extension.html}extension descriptor}} and {{{./core-extensions.html}core extensions}},

 * {{{/guides/mini/guide-maven-classloading.html}classloader hierarchy}} done by <<<ClassRealmManager>>> component
 ({{{./apidocs/org/apache/maven/classrealm/ClassRealmManager.html}javadoc}}),
 with its <<<DefaultClassRealmManager>>> implementation
 ({{{./xref/org/apache/maven/classrealm/DefaultClassRealmManager.html}source}}), using
 {{{https://codehaus-plexus.github.io/plexus-classworlds/}Plexus Classworlds}},

* Useful entry points

 * <<<Maven>>> component ({{{./apidocs/org/apache/maven/Maven.html}javadoc}}),
 with its <<<DefaultMaven>>> implementation ({{{./xref/org/apache/maven/DefaultMaven.html}source}}), to drive
 a full <<<MavenSession>>> execution ({{{./apidocs/org/apache/maven/execution/MavenSession.html}javadoc}}

 * <<<ProjectBuilder>>> component ({{{./apidocs/org/apache/maven/project/ProjectBuilder.html}javadoc}}),
 with its <<<DefaultProjectBuilder>>> implementation
 ({{{./xref/org/apache/maven/project/DefaultProjectBuilder.html}source}}),

 * <<<MavenPluginManager>>> component ({{{./apidocs/org/apache/maven/plugin/MavenPluginManager.html}javadoc}}),
 with its <<<DefaultMavenPluginManager>>> implementation
 ({{{./xref/org/apache/maven/plugin/internal/DefaultMavenPluginManager.html}source}}),

 * {{{./apidocs/org/apache/maven/plugin/PluginParameterExpressionEvaluator.html}PluginParameterExpressionEvaluator}}, used to
 evaluate plugin parameters values during Mojo configuration,

 * <<<ExceptionHandler>>> component ({{{./apidocs/org/apache/maven/exception/ExceptionHandler.html}javadoc}}),
 with its <<<DefaultExceptionHandler>>> implementation
 ({{{./xref/org/apache/maven/exception/DefaultExceptionHandler.html}source}}), use to transform exception into useful end-user messages.

* Toolchains

 * {{{./toolchains.html}Toolchains descriptor reference}},

 * public API for toolchains-aware plugins: <<<ToolchainManager>>> component ({{{./apidocs/org/apache/maven/toolchain/ToolchainManager.html}javadoc}})
 with its <<<DefaultToolchainManager>>> implementation ({{{./xref/org/apache/maven/toolchain/DefaultToolchainManager.html}source}}),
 to get selected <<<Toolchain>>> ({{{./apidocs/org/apache/maven/toolchain/Toolchain.html}javadoc}}) instance,

 * internal <<<ToolchainManagerPrivate>>> component ({{{./apidocs/org/apache/maven/toolchain/ToolchainManagerPrivate.html}javadoc}})
 with its <<<DefaultToolchainManagerPrivate>>> implementation ({{{./xref/org/apache/maven/toolchain/DefaultToolchainManagerPrivate.html}source}}),
 to manage toolchain selection,

 * internal JDK toolchain implementation: <<<JavaToolchain>>> interface ({{{./apidocs/org/apache/maven/toolchain/java/JavaToolchain.html}javadoc}}),
 with its <<<JavaToolchainImpl>>> implementation
 ({{{./xref/org/apache/maven/toolchain/java/JavaToolchainImpl.html}source}}) and <<<JavaToolchainFactory>>>
 factory ({{{./xref/org/apache/maven/toolchain/java/JavaToolchainFactory.html}source}}).
