Uploaded image for project: 'Maven Compiler Plugin'
  1. Maven Compiler Plugin
  2. MCOMPILER-98

-sourcepath not passed to javac

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Critical
    • Resolution: Fixed
    • 2.0.2
    • 2.2
    • None
    • Ubuntu 8.10, JDK 6.
    • Patch

    Description

      JavacCompiler.java (actually in plexus-compiler-javac, but I cannot find the source project for this anywhere) has

              List sourceLocations = config.getSourceLocations();
              if ( sourceLocations != null && !sourceLocations.isEmpty() && ( sourceFiles.length == 0 ) )
              {
                  args.add( "-sourcepath" );
      
                  args.add( getPathString( sourceLocations ) );
              }

      The sourceFiles.length == 0 clause should be deleted. The problem is that javac really does need to have -sourcepath even when you are passing an explicit list of *.java files; it is necessary for 269-compliant annotation processors:

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

      Following is a patch which

      1. Fixes diagnostics to print compiler arguments even for unforked mode. (javac is still run with a command line when unforked, so there is no reason to omit this valuable diagnostic info.)

      2. Hacks maven-compiler-plugin to work around the bug in plexus-compiler-javac and pass -sourcepath. Obviously a fix to p-c-j would be preferable.

      When applied to m-c-p 2.0.2 it allows the test case to build.

      Attachments

        1. MCOMPILER-98.diff
          3 kB
          Jesse N. Glick
        2. maven-6647998-test.zip
          8 kB
          Jesse N. Glick

        Issue Links

          Activity

            People

              mkleint Milos Kleint
              jglick Jesse N. Glick
              Votes:
              8 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: