Maven Compiler Plugin
  1. Maven Compiler Plugin
  2. MCOMPILER-71

javac compilation error for package-info.java containing package annotation

    Details

    • Type: Bug Bug
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: 2.0.2
    • Fix Version/s: backlog
    • Labels:
      None
    • Environment:
      Windows XP SP2
      JDK 1.5.0_15
    • Number of attachments :
      1

      Description

      The package-info.java files can not be compiled in Maven 2 if the 2.0.2 maven-compiler-plugin is used. package-info.java files can be compiled by earlier versions of the maven-compiler-plugin (I have tried 2.0 and 2.0.1). Newer snapshot versions does not work also and it fails in the same error (I have tried version 2.1-snapshot).

      This problem can be caused by an unusual behavior of the javac from jdk 1.5. This behavior is as follows:
      You can not use '/' file separator during compiling package-info.java (for instance "javac sk/forro/package-info.java"). You must use '\' separator (for instance "javac sk\forro\package-info.java"). If you use the '/' separator you get the the compilation error reported by this bug (package annotations should be in file package-info.java). This is javac 'feature' has been removed in jdk 6 and in jdk 6 you can use either '/' or '\' - it does not matter.

      It looks like the maven-compiler-plugin or one of its components (I mean plexus-x artefacts used by maven-compiler-plugin) uses '/' instead of the '\' in the MS Windows environment.

      I have attached a log file of an unsuccessful build (generated by mvn install -X)

      A possible workaround to solve this problem temporarily:
      The compilation successes if I use either an older version of maven-compiler-plugin or jdk 6 or do not use package-info.java files at all.

        Activity

        Hide
        Rishabh Chandra added a comment -

        I have faced this issue myself. I tried both 2.0 and 2.0.1 and they did not work.
        Then i used the excludes and got the code to compile. As the package-info file is only for javadoc I just ignored it. This is the only solution i could get to work.
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
        <fork>true</fork>
        <meminitial>128m</meminitial>
        <maxmem>512m</maxmem>
        <source>1.5</source>
        <target>1.5</target>
        <excludes>
        <exclude>**/package-info.java</exclude>
        </excludes>
        </configuration>
        </plugin>

        Show
        Rishabh Chandra added a comment - I have faced this issue myself. I tried both 2.0 and 2.0.1 and they did not work. Then i used the excludes and got the code to compile. As the package-info file is only for javadoc I just ignored it. This is the only solution i could get to work. <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <fork>true</fork> <meminitial>128m</meminitial> <maxmem>512m</maxmem> <source>1.5</source> <target>1.5</target> <excludes> <exclude>**/package-info.java</exclude> </excludes> </configuration> </plugin>
        Hide
        Justin Edelson added a comment -

        package-info.java is not just for javadoc.

        Show
        Justin Edelson added a comment - package-info.java is not just for javadoc.
        Show
        Stephen Connolly added a comment - At least when fork is true, this issue was introduced in r5396 of plexus http://fisheye.codehaus.org/browse/plexus/plexus-components/trunk/plexus-compiler/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java?r1=5395&r2=5396
        Hide
        Stephen Connolly added a comment -

        line 622 of the above diff is one of the offending lines

        Show
        Stephen Connolly added a comment - line 622 of the above diff is one of the offending lines
        Hide
        Ivan Bogouchev added a comment -

        We experience the same problem and it seems this is a bug in javac 1.5 :

        http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6198196

        Show
        Ivan Bogouchev added a comment - We experience the same problem and it seems this is a bug in javac 1.5 : http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6198196
        Hide
        John Casey added a comment -

        I think I've got the offending lines fixed in 2.2-SNAPSHOT (or rather, in plexus-compiler-javac-1.7: http://svn.codehaus.org/plexus/plexus-components/trunk/plexus-compiler/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java).

        Can someone please take a look to make sure? Even better: if you have a test case, and can specify where it will fail (for instance, does it fail on linux?) that would be great to include.

        Show
        John Casey added a comment - I think I've got the offending lines fixed in 2.2-SNAPSHOT (or rather, in plexus-compiler-javac-1.7: http://svn.codehaus.org/plexus/plexus-components/trunk/plexus-compiler/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java ). Can someone please take a look to make sure? Even better: if you have a test case, and can specify where it will fail (for instance, does it fail on linux?) that would be great to include.
        Hide
        John Casey added a comment - - edited

        Okay, had to roll that change back. That wasn't the best way to go about things; it fails miserably.

        FWIW, the failed commit is revId: 8627

        http://fisheye.codehaus.org/browse/plexus/plexus-components/trunk/plexus-compiler/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java?r1=8626&r2=8627

        Show
        John Casey added a comment - - edited Okay, had to roll that change back. That wasn't the best way to go about things; it fails miserably. FWIW, the failed commit is revId: 8627 http://fisheye.codehaus.org/browse/plexus/plexus-components/trunk/plexus-compiler/plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java?r1=8626&r2=8627
        Hide
        Luca De Petrillo added a comment -

        FYI: Using jdk 1.5.0_22, package-info.java files are compiled correctly.

        I don't know exactly from what jdk version it started working, but I tried also with jdk 1.5.0_16 and seems to not works.

        Show
        Luca De Petrillo added a comment - FYI: Using jdk 1.5.0_22, package-info.java files are compiled correctly. I don't know exactly from what jdk version it started working, but I tried also with jdk 1.5.0_16 and seems to not works.
        Hide
        Michael Osipov added a comment -

        Please refer to https://cwiki.apache.org/confluence/display/MAVEN/The+Great+JIRA+Cleanup+of+2014 if you're wondering why this issue was closed out.

        Assignee, if you think you can fix this bug anytime soon, please reopen and proceed appropriately.

        Show
        Michael Osipov added a comment - Please refer to https://cwiki.apache.org/confluence/display/MAVEN/The+Great+JIRA+Cleanup+of+2014 if you're wondering why this issue was closed out. Assignee, if you think you can fix this bug anytime soon, please reopen and proceed appropriately.

          People

          • Assignee:
            John Casey
            Reporter:
            Gabriel Forro
          • Votes:
            14 Vote for this issue
            Watchers:
            13 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: