Сохранение байт-кода встроенных методов в результирующем JAR-файле.JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сохранение байт-кода встроенных методов в результирующем JAR-файле.

Сообщение Anonymous »

Я ни в коем случае не являюсь разработчиком Scala (скорее Dart и Rust), но мне нужно использовать некоторую библиотеку, написанную на Scala, в моем Java-проекте.
Я могу собрать JAR из этой библиотеки и использовать его как зависимость Maven, импортировать из него классы (несмотря на несколько искаженные имена), но есть одна вещь, которая мешает мне использовать эту библиотеку в полной мере.
Большинство классов там изобилуют методами отмечен модификатором «inline». Эти методы кажутся мне полезными, и я хотел бы иметь возможность свободно вызывать их.
Но из-за своей встроенной природы они оптимизированы вне результирующих файлов .class во время сборки, записываются только в файлы .tasty, которые игнорируются компилятором Java и, следовательно, становятся недоступными для кода Java.
Итак, мне нужно либо получить эти методы в доступном для Java байт-коде, либо полностью отключив встраивание на уровне компилятора или оставив их встроенными, но дополнительно скомпилировав их тела в файлы .class.
Я пытался использовать некоторые связанные параметры CLI Scalac, например -opt: * и -Yno-inline, но безуспешно, Scala 3 больше не предоставляет ни одного из них.
Затем я спросил ChatGPT, он предложил написать плагин компилятора Scala, который программно изменяет какой-то связанный флаг в дереве AST, но предоставленный код не скомпилировался из-за отсутствия импорта, и я не могу найти их в компиляторе scala3.
Я пытался найти в Google некоторую теорию о писал плагины для компилятора Scala, но тоже безуспешно.
Поэтому мой вопрос довольно простой - как принудительно включить встроенные методы в байт-код?
Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/783 ... ulting-jar
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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