Are Java 9+ annotation processors using module path supposed to generate source code that has a javax.annotation.processing.Generated annotation? (which is part of java.compile)
I have an annotation processor that supports modules and is fine except that when module applications use it the @Generated will not be included in the generated source unless the application module-info adds a *requires java.compiler;* (which seems wrong). So this is a minor niggle that the @Generated no longer is included in the generated source when apps go from class path to module path. Apologies is this has been asked before. I was unable to find anything on this issue. Any pointers or thoughts? *Background* I have an annotation processor that generates source code (that now supports java modules with a module-info via a Multi-Release jar). The module-info for the annotation processor is: module io.avaje.inject.generator { requires java.compiler; requires io.avaje.inject; requires java.annotation; provides javax.annotation.processing.Processor with io.avaje.inject.generator.Processor; } The annotation processor adds a @Generated to the generated source to document that the source code is generated. The annotation processor only adds the @Generated if javax.annotation.processing.Generated is deemed available by using: *elements.getTypeElement("javax.annotation.processing.Generated") != null* The annotation processor generates source that includes the @Generated in the cases of: - There is no module-info.java (app is using class path and not module path) - The app module-info.java includes: *requires java.compiler;* I'm not expecting users of this annotation processor to put a *requires java.compiler;* into their module-info. I think I must be doing something wrong or should not try to use javax.annotation.processing.Generated which is part of java.compile. Cheers, Rob.