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 itsDefaultMavenimplementation (source), to drive a fullMavenSessionexecution (javadocProjectBuildercomponent (javadoc), with itsDefaultProjectBuilderimplementation (source), to prepareMavenProjectdescriptor from POM files,LifecycleExecutorcomponent (javadoc), with itsDefaultLifecycleExecutorimplementation(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 itsDefaultMavenPluginManagerimplementation (source),- PluginParameterExpressionEvaluator, used to evaluate plugin parameters values during Mojo configuration,
ExceptionHandlercomponent (javadoc), with itsDefaultExceptionHandlerimplementation (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).



