source -> The level (JDK version) to which the source code must be compliant 
to, for example you can write source code using a JDK 1.6 which is compliant to 
Java 1.5. However you can also use the StringBuilder class which does not exist 
in Java 1.5
target -> The class version of the generated class files. The class format 
changes with some Java version, for example as some stuff may be added for 
performance reason. For example if a new byte code instruction comes up (like 
'invokedynamic') this really makes a change. Or another example (I'm not really 
sure about it): As far as I think a stack map has been added from Java 5 to 
Java 1.6. This should improve performance and makes subtle differences when 
ClassNotFoundException are thrown. You can use a JDK to compile code for 
different but lower versions. This way can benefit from some optimizations 
which weren't available with the old JDK and are compatible.

With regards
Sebastian

-----Ursprüngliche Nachricht-----
Von: Lin Ma [mailto:lin...@gmail.com] 
Gesendet: Montag, 30. März 2015 07:46
An: Maven Users List
Betreff: about source and target in maven-compiler-plugin

Hello Maven masters,

For maven-compiler-plugin(a sample below), have a quick question. I read this 
document (http://maven.apache.org/plugins/maven-compiler-plugin/), and confused 
what means source and target 1.5 here, it seems it is an internal version 
number of Maven, independent of JDK?

<plugin>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
        <source>1.5</source>
        <target>1.5</target>
    </configuration>
</plugin>

thanks in advance,
Lin

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to