You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Robert Scholte (Jira)" <ji...@apache.org> on 2021/09/10 17:34:00 UTC

[jira] [Commented] (MCOMPILER-369) Adding module-info.java breaks JMH annotation processor

    [ https://issues.apache.org/jira/browse/MCOMPILER-369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17413306#comment-17413306 ] 

Robert Scholte commented on MCOMPILER-369:
------------------------------------------

It looks like this can't be fixed in the code. I suggest to add an entry to the [Frequently Asked Questions|https://maven.apache.org/plugins/maven-compiler-plugin/faq.html] page.

> Adding module-info.java breaks JMH annotation processor
> -------------------------------------------------------
>
>                 Key: MCOMPILER-369
>                 URL: https://issues.apache.org/jira/browse/MCOMPILER-369
>             Project: Maven Compiler Plugin
>          Issue Type: Bug
>    Affects Versions: 3.8.0
>            Reporter: Gili
>            Priority: Major
>         Attachments: annotation-processor-jigsaw.zip
>
>
> # Open testcase
>  # Run {{clean install}}. Notice that the benchmarks run.
>  # Open {{pom.xml}} and comment-out the {{<annotationProcessorPaths> section.}}
>  # Run {{clean install}}. Notice that the annotation processor does not run and the benchmarks break.
>  # Delete/rename {{module-info.java}}.
>  # Run {{clean install}}. Notice that the benchmarks work again.
> The documentation for {{<annotationProcessorPaths>}} states that by default annotation processors are detected from the classpath. It seems that adding {{module-info.java}} breaks that somehow, which is weird/unexpected because JMH exists as a dependency outside the newly-declared module.
> I did two things to prove that the annotation processor is not being invoked in step 4:
>  # Notice that {{target/test-classes/META-INF}} is not created.
>  # Place a breakpoint in {{org.openjdk.jmh.generators.BenchmarkProcessor}} and notice that it is never even constructed.
> I tried digging into the maven-compiler-plugin and plexus-compiler source-code but couldn't figure out where the problem is. The only workaround I found is to specify {{annotationProcessorPaths}} manually but it took me half a day to track down this problem.
> Any idea what is going on? Is this a bug in the plugin(s)?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)