Как Lombok использует внутренние API, не требуя от конечного пользователя их экспорта?JAVA

Программисты JAVA общаются здесь
Anonymous
Как Lombok использует внутренние API, не требуя от конечного пользователя их экспорта?

Сообщение Anonymous »

Я пытаюсь создать обработчик аннотаций, похожий на Lombok, но проблема, с которой я сталкиваюсь, заключается в том, что все проекты, которые используют мой процессор в качестве библиотеки, требуют аргументов jvm для экспорта/открытия внутренних библиотек JVM. Как я могу использовать внутренние API, чтобы они не нуждались в других проектах?
Я пытался
  • Использовать инструменты .jar вместо добавления экспорта JVM
  • Пытался открыть библиотеки вместо их экспорта
  • просто попробовал кучу случайных вещей, чтобы попытаться получить их работать
Прямо сейчас любые проекты, использующие мою библиотеку, требуют следующего в своем build.gradle.
compileJava {
options.fork = true
options.forkOptions.jvmArgs += [
'--add-exports', 'jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED',
'--add-exports', 'jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED',
'--add-exports', 'jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED',
'--add-exports', 'jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED',
'--add-exports', 'jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED',
'--add-exports', 'jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED',
'--add-exports', 'jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED',
'--add-exports', 'jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED',
'--add-exports', 'jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED'
]
}


Подробнее здесь: https://stackoverflow.com/questions/784 ... xport-them

Вернуться в «JAVA»