maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Osipov (JIRA)" <j...@apache.org>
Subject [jira] [Closed] (MCOMPILER-97) META-INF/services/javax.annotation.processing.Processor copied before compilation and causes error
Date Sun, 06 Sep 2015 20:46:17 GMT

     [ https://issues.apache.org/jira/browse/MCOMPILER-97?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Michael Osipov closed MCOMPILER-97.
-----------------------------------
    Resolution: Auto Closed

This issue has been auto closed because it has been inactive for a long period of time. If
you think this issue still applies, retest your problem with the most recent version of Maven
and the affected component, reopen and post your results.

> META-INF/services/javax.annotation.processing.Processor copied before compilation and
causes error
> --------------------------------------------------------------------------------------------------
>
>                 Key: MCOMPILER-97
>                 URL: https://issues.apache.org/jira/browse/MCOMPILER-97
>             Project: Maven Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 2.0.2
>         Environment: Ubuntu 8.10, JDK 6.
>            Reporter: Jesse Glick
>         Attachments: MCOMPILER-97-workaround.zip, 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 was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message