Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Critical
-
Resolution: Fixed
-
Affects Version/s: 2.0.2
-
Fix Version/s: 2.2
-
Component/s: None
-
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.
Attachments
Issue Links
| This issue 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 |
|
|
|
| This issue is depended upon by: | ||||
| MCOMPILER-75 | Add apt support for Java 6 |
|
|
|
269 support in general would require this to be fixed.