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

Dennis Lundberg closed MCOMPILER-57.
------------------------------------

    Resolution: Fixed

Patch applied with slight modifications. Thank you!

> 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
>            Assignee: Dennis Lundberg
>            Priority: Trivial
>         Attachments: MCOMPILER-57-maven-compiler-plugin.patch
>
>
> 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 <[EMAIL PROTECTED]> 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

        

Reply via email to