Skip to content

[MCOMPILER-538] Do not add target/generated-sources/annotations to the source roots #744

@jira-importer

Description

@jira-importer

Daniel Mensinger opened MCOMPILER-538 and commented

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:

  1. run mvn clean
  2. 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).
  3. run mvn compile --> the generated file exists but there is no class file for the source file.
  4. Fix the "bug" from step 2
  5. 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:

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

 
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: #191


Affects: 3.11.0

Issue Links:

  • MCOMPILER-540 useIncrementalCompilation=false may add generated sources to the sources list

  • MCOMPILER-333 Incremental compilation causes "mvn clean compile compile" to fail

Remote Links:

2 votes, 8 watchers

Metadata

Metadata

Labels

bugSomething isn't workingpriority:majorMajor loss of function

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions