Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
2.0.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
Attachments
Issue Links
- depends upon
-
MCOMPILER-97 META-INF/services/javax.annotation.processing.Processor copied before compilation and causes error
- Reopened
-
MCOMPILER-66 Compiler swallows messages from annotation processors
- Closed
-
MCOMPILER-122 -sourcepath shall include resources
- Closed
- is depended upon by
-
MCOMPILER-75 Add apt support for Java 6
- Closed