[ https://jira.codehaus.org/browse/MCOMPILER-97?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=272577#comment-272577 ]
Jesse Glick commented on MCOMPILER-97: -------------------------------------- Regarding {{-source 1.5}}: it is unsafe to pass {{-processorpath}} in this case, since the target javac might in fact be from JDK 5 and not recognize this option. (If the compiler plugin went through JSR 199, with javac on the plugin classpath, this would not be an issue.) Regarding a change in javac's behavior: I would not hold my breath. After all, you passed {{-classpath target/classes:...}} so that is where it is looking. It is really the responsibility of the invoker to make sure the processor path is correct. > META-INF/services/javax.annotation.processing.Processor copied before > compilation and causes error > -------------------------------------------------------------------------------------------------- > > Key: MCOMPILER-97 > URL: https://jira.codehaus.org/browse/MCOMPILER-97 > Project: Maven 2.x Compiler Plugin > Issue Type: Bug > Affects Versions: 2.0.2 > Environment: Ubuntu 8.10, JDK 6. > Reporter: Jesse Glick > Attachments: maven-6647998-test.zip > > > It is tricky to compile a Maven module which defines a (269-compliant) > annotation processor. If you write the code for the processor in > src/main/java and register it in src/main/resources, > META-INF/services/javax.annotation.processing.Processor is copied to > target/classes first, and then javac is run. But javac is given > target/classes in -classpath, so it tries to load the processor, which of > course has not been compiled yet - a chicken-and-egg problem. > The most straightforward workaround is to specify > <compilerArgument>-proc:none</compilerArgument> in your POM. This will only > work, however, if the module does not use any annotation processors defined > in dependencies. If it does, there may be some other trick involving > -processorpath and Maven variable substitution to insert the dependency > classpath. > Switching the order of resources:resources and compiler:compile would help - > at least a clean build would work - though it could still cause problems in > incremental builds. Better would be for the compiler plugin to pass > -processorpath based on the dependency classpath (i.e. -classpath minus > target/classes) when using -source 1.6 or higher. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira