Daniel Mensinger created MCOMPILER-538:
------------------------------------------

             Summary: 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
            Reporter: Daniel Mensinger


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.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to