[ https://issues.apache.org/jira/browse/MCOMPILER-538?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17799180#comment-17799180 ]
Slawomir Jaranowski commented on MCOMPILER-538: ----------------------------------------------- [~mensinda] I have tested your patch with provided project .... and I have: {noformat} generatedSourcesInJavacArgs.sh ... [INFO] --- compiler:3.12.1-SNAPSHOT:compile (default-compile) @ code --- [INFO] Compiling 2 source files with javac [forked debug deprecation target 17] to target/classes [INFO] ------------------------------------------------------------- [WARNING] COMPILATION WARNING : [INFO] ------------------------------------------------------------- [WARNING] [options] system modules path not set in conjunction with -source 17 [INFO] 1 warning [INFO] ------------------------------------------------------------- [INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] java.lang.RuntimeException: javax.annotation.processing.FilerException: Attempt to recreate a file for type bar.MyGeneratedClass at foo.MyProcessor.process(MyProcessor.java:24) at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:1021) at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:937) at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1265) at jdk.compiler/com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1380) at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1272) at jdk.compiler/com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:946) at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:319) at jdk.compiler/com.sun.tools.javac.main.Main.compile(Main.java:178) at jdk.compiler/com.sun.tools.javac.Main.compile(Main.java:64) at jdk.compiler/com.sun.tools.javac.Main.main(Main.java:50) Caused by: javax.annotation.processing.FilerException: Attempt to recreate a file for type bar.MyGeneratedClass at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.checkNameAndExistence(JavacFiler.java:741) at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.createSourceOrClassFile(JavacFiler.java:498) at jdk.compiler/com.sun.tools.javac.processing.JavacFiler.createSourceFile(JavacFiler.java:435) at foo.MyProcessor.generate(MyProcessor.java:40) at foo.MyProcessor.process(MyProcessor.java:22) ... 10 more {noformat} So looks like not resolve a problem We should have an IT - which can reproduce a problem > Do not add target/generated-sources/annotations to the source roots > ------------------------------------------------------------------- > > Key: MCOMPILER-538 > URL: https://issues.apache.org/jira/browse/MCOMPILER-538 > Project: Maven Compiler Plugin > Issue Type: Bug > Affects Versions: 3.11.0 > Reporter: Daniel Mensinger > Assignee: Slawomir Jaranowski > Priority: Major > Fix For: 3.12.1 > > > Adding the generated source root ({{target/generated-sources/annotations}}) > is not required for javac. Additionally adding the generated source root > results in compilation errors with annotation processors generating code > unless the generated-sources dir is cleaned. > Specifically, the following steps result in compilation errors: > # run {{mvn clean}} > # Modify a source file that is consumed by the annotation processor so that > there is a compilation error, but the annotation processor still runs (add or > remove a parameter in a method call). > # run {{mvn compile}} --> the generated file exists but there is no class > file for the source file. > # Fix the "bug" from step 2 > # run {{mvn compile}} again --> compilation should succeed, but it fails. > ---- > Example code: > [https://github.com/mensinda/quarkus-stuff/tree/annotationProcessingTest] > Use the {{annotationProcessingTest}} branch! > For step 2 this change can be used: > {code:java} > diff --git a/code/src/main/java/bar/MyAnnotatedClass.java > b/code/src/main/java/bar/MyAnnotatedClass.java > index bbfef7a..a303924 100644 > --- a/code/src/main/java/bar/MyAnnotatedClass.java > +++ b/code/src/main/java/bar/MyAnnotatedClass.java > @@ -4,7 +4,7 @@ import foo.MyAnnotation; > @MyAnnotation > public class MyAnnotatedClass { > - MyGeneratedClass generatedClass = new MyGeneratedClass(); > + MyGeneratedClass generatedClass = new MyGeneratedClass(false); > // foo > {code} > > To see that *not* adding {{target/generated-sources/annotations}} helps run > {{mvn -X compile}} and copy the {{Command line options:}}. Then run {{javac}} > manually, but remove the {{target/generated-sources/annotations}} from the > {{-sourcepath}} list, but *not* the {{-s}} parameter. > ---- > PR with a fix: https://github.com/apache/maven-compiler-plugin/pull/191 -- This message was sent by Atlassian Jira (v8.20.10#820010)