Ответ 1
Strata действительно не подходит для Scala или JRuby, поскольку они скомпилированы непосредственно в байт-коды, поэтому достаточно атрибутов SourceFile и LineNumberTable. Strata предназначены для таких вещей, как JSP, которые переводятся в исходный файл Java и скомпилированы. Страты определяются исходной картой (SMAP), хранящейся в атрибуте SourceDebugExtension. Детали того, как все это работает, являются частью JSR-45. Другим примером может быть State Machine Compiler, хотя я не думаю, что он генерирует SMAP. Я также не уверен, имеет ли javac возможность встраивания SMAP в файл класса. Тогда вам понадобится отдельный инструмент для этого.