Maven does not recompile everything each time. You have to do mvn clean to force it to. If you change a single class just that one class gets recompiled which is evident by Maven's output.
The default compiler plugin configuration is quite eager to recompile allot if something changed.
https://maven.apache.org/plugins/maven-compiler-plugin/compi...
"true (default) in this mode the compiler plugin determines whether [...] any source file was added, removed or changed since the last compilation. If this is the case, the compiler plugin recompiles _all_ sources.