[ 
https://jira.codehaus.org/browse/MCOMPILER-157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=313563#comment-313563
 ] 

Zoran Regvart commented on MCOMPILER-157:
-----------------------------------------

Olivier, so the two projects that I'll upload are example of a failing 
situation. The awkwardly named  compiler-plugin-simple-annotation-processor is 
an annotation processor that will generate a .txt file in the with the same 
directory structure as the annotated class, that is a class annotated with 
@SimpleAnnotation. The other project is compiler-plugin-annotation-test that 
has a compile dependency on the former, and a test that checks if the .txt file 
was indeed created.

If you were to do it on command line using standard java tools you would first 
compile the sources with javac (including 
compiler-plugin-simple-annotation-processor.jar and junit.jar) at this point 
javac would detect the annotation processor and it would create the .txt file 
(in current directory if no -s option was given). Then you would use java 
org.junit.runner.JUnitCore org.apache.maven.plugin.AnnotationProcessorTest with 
classpath pointing to the output of javac (that would include the generated 
.txt file).

With maven project directory structure and conventions, i.e. source output of 
annotation processors is target/generated-sources/[test-]annotations, and the 
fact that current maven compiler plugin does not forward the 
target/generated-sources/[test-]annotations to compileSourceRoots fails the 
test. The build helper workaround mentioned above helps, but I think that 
proper solution is for maven compiler plugin to include the sources it 
generated (via annotation processors) in classpath for other plugins to have.

This is very similar to my original use case - in which I was generating 
resources (AspectJ inter type declarations) to be considered by the another 
plugin after maven compiler plugin (AspectJ maven plugin), that needs these 
generated resources in classpath. But I imagine that there are other use cases 
for this as well.

I don't know it this is what you were thinking by a failing test, but I hope it 
helps.

Zoran
                
> Maven Compiler Plugin should add to compileSourceRoots for next plugins to 
> consider as source directory for generated files 
> ----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: MCOMPILER-157
>                 URL: https://jira.codehaus.org/browse/MCOMPILER-157
>             Project: Maven 2.x Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 2.3.2
>         Environment: Java 6
>            Reporter: Zoran Regvart
>             Fix For: 3.0
>
>         Attachments: failing-test-example.zip, 
> maven-compiler-plugin-add-compileSourceRoots.patch, 
> maven-compiler-plugin-addToSourcePathAsWell.patch, TestCase2.zip, 
> test-case.zip
>
>
> Maven Compiler Plugin by relying on javac by default, on Java 6 platform 
> includes annotation processors in it's processing, these in end could 
> generate sources that are placed by default in 
> target/generated-sources/annotations. The later should be added to 
> compileSourceRoots so that next plugin in execution would consider those 
> sources.
> Please, see the attached test case and consider the attached patch in the 
> next release of maven-compiler-plugin.
> thanks,
> Zoran

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to