Hi Lin, I just tried my example and Maxim is right. I thought that the source should take the API compatibility into account it seems that it is not this way. Hence if the classes are successfully compiled (which requires a JDK > 1.5) and you are executing them with Java 1.5 the StringBuilder class will not be in place -> ClassNotFoundException (the class format should be as needed for Java 1.5 due to the target).
However I will not tell anymore about it as I'm not completely sure about the moment and I do not have the time to really dig into this. Sorry. Detailed information about this is available in the net. In an earlier email someone already provided links for the Maven documentation. Furthermore details about setting the compiler level can be found for example in the Sun Certified Java Programmer Study Guide. With regards Sebastian -----Ursprüngliche Nachricht----- Von: Lin Ma [mailto:[email protected]] Gesendet: Montag, 30. März 2015 09:38 An: Maven Users List Betreff: Re: about source and target in maven-compiler-plugin Hi Maxim, Why compiler will not fail? Supposing StringBuilder is a class in JDK 1.6, but we force compiler to use 1.5 which has no such class? Please feel free to correct me if I am wrong. regards, Lin On Mon, Mar 30, 2015 at 12:33 AM, Maxim Solodovnik <[email protected]> wrote: > If I'm not mistaken compiler will not fail in this case BUT the > application will fail in runtime (in case Java 1.5 is used) due to > StringBuilder class is missing in JDK > > On Mon, Mar 30, 2015 at 1:20 PM, Lin Ma <[email protected]> wrote: > > > Thanks Sebastian, > > > > 1. I am using JDK 1.7/1.8 for both development and deployment in > > runtime, shall I change 1.5 of source and target to 1.7/1.8? > > > > 2. In your example, "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", I think using JDK 1.6 > > specific feature but using 1.5 complier will fail? No? Please feel > > free to correct me. > > > > regards, > > Lin > > > > On Mon, Mar 30, 2015 at 12:14 AM, Sebastian Oerding < > > [email protected]> wrote: > > > > > 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:[email protected]] > > > 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: [email protected] > > > For additional commands, e-mail: [email protected] > > > > > > > > > -- > WBR > Maxim aka solomax >
