Я пишу процессор аннотаций, который генерирует файл JSON, содержащий некоторые данные, считанные из аннотаций (легко) и путь к файлу, где эти аннотации используются.
Проблема : Я не могу понять, как получить файл, соответствующий TypeElement
(который является аннотированным элементом).
Я обнаружил, что TreePath
API должен сделать это:
val instance = Trees.instance(processingEnv)
instance.getPath(element)
, но кажется, что com.sun.source.util.Trees
недоступен в используемой нами версии jdk (AdoptOpenJDK OpenJDK Runtime Environment 1.8.0_242-b08)
Я также пытался с
val compiler: JavaCompiler = ToolProvider.getSystemJavaCompiler()
val fm = compiler.getStandardFileManager(null, null, null)
val locations = fm.getJavaFileObjects(element.toString())
println(locations.first().toUri())
, но он не дает мне действительный путь к файлу.
Любая другая подсказка?