Maven Core
Maven Core classes managing the whole build process.
Reference Documentation
- lifecycles and plugin bindings to defaultlifecycle,
- default artifact handlers, to manage dependency types,
- extension descriptor and core extensions,
- classloader hierarchy done by ClassRealmManagercomponent (javadoc), with itsDefaultClassRealmManagerimplementation (source), using Plexus Classworlds,
Useful entry points
- Mavencomponent (javadoc), with its- DefaultMavenimplementation (source), to drive a full Maven execution session
- ProjectBuildercomponent (javadoc), with its- DefaultProjectBuilderimplementation (source), to prepare- MavenProjectdescriptor from POM files,
- LifecycleExecutorcomponent (javadoc), with its- DefaultLifecycleExecutorimplementation(source), to plan or execute tasks.
 on plugin goals execution order:- in a given phase, goals order is not expected to be guaranteed nor finely tuned: it is just a consequence of the order obtained during effective model building, which combines profile activation+injection and inheritance assembly from parents,
- known limitations are notably that:
1. plugin goal execution in a child is usually simply appended (at end): you can't try to insert in the middle of pre-existing inherited executions, 2. append happens at plugin level first, then goal level, independently from phases. This means for example that adding pluginA:goal2 to pre-existing (pluginA:goal1, pluginB:goal) will lead to (pluginA:goal1, pluginA:goal2, pluginB:goal) 
- see effective POM as shown by help:effective-pomto see the effective plugins then goals order.
 
- MavenPluginManagercomponent (javadoc), with its- DefaultMavenPluginManagerimplementation (source),
- PluginParameterExpressionEvaluator, used to evaluate plugin parameters values during Mojo configuration,
- ExceptionHandlercomponent (javadoc), with its- DefaultExceptionHandlerimplementation (source), use to transform exception into useful end-user messages.
Toolchains
- Toolchains descriptor reference,
- public API for toolchains-aware plugins: ToolchainManagercomponent (javadoc) with itsDefaultToolchainManagerimplementation (source), to get selectedToolchain(javadoc) instance,
- internal ToolchainManagerPrivatecomponent (javadoc) with itsDefaultToolchainManagerPrivateimplementation (source), to manage toolchain selection,
- internal JDK toolchain implementation: JavaToolchaininterface (javadoc), with itsJavaToolchainImplimplementation (source) andJavaToolchainFactoryfactory (source).



