You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Gisbert Amm (JIRA)" <ji...@codehaus.org> on 2007/08/16 13:37:47 UTC

[jira] Commented: (MCOMPILER-57) State default source (1.3) and target (1.1) in the documentation

    [ http://jira.codehaus.org/browse/MCOMPILER-57?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_105003 ] 

Gisbert Amm commented on MCOMPILER-57:
--------------------------------------

respective thread on the mailing list:

http://www.nabble.com/Why-does-Maven2-by-default-generate-Java-1.1-byte-code--tf4273477s177.html#a12163158

> State default source (1.3) and target (1.1) in the documentation
> ----------------------------------------------------------------
>
>                 Key: MCOMPILER-57
>                 URL: http://jira.codehaus.org/browse/MCOMPILER-57
>             Project: Maven 2.x Compiler Plugin
>          Issue Type: Improvement
>    Affects Versions: 2.1
>            Reporter: Gisbert Amm
>            Priority: Trivial
>
> The documentation does currently say nothing about the compiler defaults, especially source and target version, which is 1.3 and 1.1 (byte code 45.3). It would be helpful to add this information to the docs to make the defaults obvious.
> Respective mailing list content:
> This has been discussed several times on this list.
> IMO, the default compilation target being 1.1 (or another hard-defined
> version) meets the rule of least surprise. You can argue that you
> don't like 1.1 and you'd prefer 1.3 or even 1.5 but that is another
> discussion.
> In contrast, the rule of most surprise would be "my build changes when
> I change my JDK" or "my build changes when I build things on different
> machines". This is the absolute worst thing you can run into when
> trying to standardize and control your build process.
> If you want to target a specific JDK, then simply add the compiler
> configuration in your poms. If you feel this has not been documented
> sufficiently, then post a RFE in Jira and someone will add some text
> to the proper page(s) on the site.
> Wayne
> On 8/15/07, Gisbert Amm <gi...@webde.de> wrote:
> >> Searching for version issues, I had a closer look at the *.class files
> >> generated by Maven2 with the default compiler settings and found that
> >> the first bytes of them are "cafe babe 0003 002D ...", which is byte
> >> code version 45.3 = Java 1.1.
> >>
> >> First I was believing that I had this (target 1.1) configured somewhere
> >> by accident. However, I didn't find any such configuration, therefore I
> >> dug into the plexus-compiler source and found the following in
> >> plexus-site/plexus-components/plexus-compiler/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java:
> >>
> >>   // TODO: this could be much improved
> >>         if ( StringUtils.isEmpty( config.getTargetVersion() ) )
> >>         {
> >>             // Required, or it defaults to the target of your JDK (eg 1.5)
> >>             args.add( "-target" );
> >>             args.add( "1.1" );
> >>         }
> >>         else
> >>         {
> >>             args.add( "-target" );
> >>             args.add( config.getTargetVersion() );
> >>         }
> >>
> >>         if ( !suppressSource( config ) && StringUtils.isEmpty(
> >> config.getSourceVersion() ) )
> >>         {
> >>             // If omitted, later JDKs complain about a 1.1 target
> >>             args.add( "-source" );
> >>             args.add( "1.3" );
> >>         }
> >>
> >> Is there any particular reason why target is set to 1.1 here? IMHO, it
> >> breaks the rule of least surprise for I am certainly expecting that the
> >> generated byte code by default has the version of the JDK I'm using the
> >> compiler of. The comment "Required, or it defaults to the target of your
> >> JDK" doesn't give any reason. Does anybody know, why this default is set?
> >>
> >> At least it should be mentioned on
> >> http://maven.apache.org/plugins/maven-compiler-plugin/howto.html to make
> >> it obvious to users. Otherwise people might have problems and need a
> >> long time to find out what's going on (see
> >> http://www.nabble.com/Odd-Compilation-Issue-tf1566644s177.html#a4287495
> >> for an example).
> >>
> >> Regards,
> >> Gisbert

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira