Как 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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