Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Critical
-
Resolution: Fixed
-
Affects Version/s: 2.0.2
-
Fix Version/s: 2.2
-
Labels:None
-
Environment:Ubuntu 8.10, JDK 6.
-
Testcase included:yes
-
Patch Submitted:Yes
-
Number of attachments :
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 ) )
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.
Issue Links
- depends upon
-
MCOMPILER-66
Compiler swallows messages from annotation processors
-
-
MCOMPILER-97
META-INF/services/javax.annotation.processing.Processor copied before compilation and causes error
-
-
MCOMPILER-122
-sourcepath shall include resources
-
- is depended upon by
-
MCOMPILER-75
Add apt support for Java 6
-
269 support in general would require this to be fixed.