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

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

Сообщение Anonymous »

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

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

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

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

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

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

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

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