Parallel build conflicts with annotation processor?


I am currently working on a project migration from Maven to Gradle 6.5.1 (I’m a Gradle newbie). Overall the migration seems complete, so I wanted to try on the parallel execution. It seems to indeed increase the performances, but at the same time it is sometime failing because of this kind of error:

C:\path\to\prject\rest\impl\build\generated\sources\annotationProcessor\java\main\path\to\file\mapper\ error: reached end of file while parsing

So it seems that Gradle initiates the Java compilation of all the source sets before the MapStruct annotation processor finishes its process (if I check the generated source file right after the build failure, the file is valid).

I would have assumed that Gradle would notice somehow that there is an annotation processor and waits for its completion (but I may be wrong here of course). So I see 2 options:

  • Either the Maptstruct annotation processor does not support the parallel mode (but I cannot find any reference to that on their documentation)
  • Or I need to state explicitly somehow in the build.gradle that the compilation of the sources dependsOn the annotation processor generation

Any idea on what is the right option (albeit there may be other options)? In case of the second one, how to achieve that?


Any idea on this? Thanks!