I have a simple annotation processor that needs to read a configuration file from the same project as the annotated classes. Example structure:
- myproject
- src
- main
- java
- my.package.SourceFile
- resources
- config.json
In the annotation processor, I try to read the file:
FileObject resource = processingEnv.getFiler().getResource(StandardLocation.SOURCE_PATH, "", "config.json");
but it throws FileNotFoundException
. I also tried other paths, such as ../resources/config.json
, (which throws Invalid relative name: ../resources/config.json
). And I tried putting the config file in src/main/java
(and even src/main/java/my/package
) instead, which I don't like, but that also still throws FileNotFoundException
.
It would already help if I could get filer.getResource()
to tell me where it's looking. To find that out, I tried generating a file:
filer.createResource(StandardLocation.SOURCE_OUTPUT, "", "dummy");
which generated in myproject/build/classes/main/dummy
. Unfortunately, I can't generate in SOURCE_PATH
, so that doesn't help with finding this out.