Effective POM is composed of Super POM + Application POM(s) + settings.xml contents + plugins bound to the lifecycle by default based on the packaging type chosen (thus, based on one element in the Application POM).
You asked about maven-jar-plugin
and maven-compiler-plugin
. These are bound to the lifecycle by default because your application POM specifies jar
packaging.
You can see the default bindings in $YOUR_REPO_LOCATION\org\apache\maven\maven-core\3.0.x\maven-core-3.0.x.jar\META-INF\plexus\components.xml
or in the documentation.