Maven compiler plugin question

i see.
could you please also explain what exactly is the plugin configuration doing here.

Eg:

<!-- Replacing default-testCompile as it is treated specially by maven -->
<execution>
    <id>default-testCompile</id>
    <phase>none</phase>
</execution>

what does treated specially stand for here and what is it being replaced by?

Also:

<execution>
        <id>java-compile</id>
        <phase>compile</phase>
        <goals> <goal>compile</goal> </goals>
    </execution>
    <execution>
        <id>java-test-compile</id>
        <phase>test-compile</phase>
        <goals> <goal>testCompile</goal> </goals>
    </execution>

this seems like it is calling the goal that the plugin would call by default. does it still need to be specified? or am i wrong?

Also is it possible to replace the version string of the plugin with a generic maven property to denote the current version of maven?