Выходная папка компилятора Kotlin в Eclipse

Компилятор Jetbrains Kotlin в Eclipse выводит скрытую папку внутри плагина компилятора Eclipse. Эта скрытая папка затем становится доступной через контейнер класса Eclipse Kotlin.

В bndtools нам нужна нормальная папка файловой системы, так как bnd может запускать как из файловой системы, так и в Eclipse. Поскольку папка является связанным ресурсом, нет никакого известного способа ее перевода за пределы Eclipse.

Кто-нибудь знает, как сообщить компилятору Kotlin просто вывести его в папку bin?

В настоящее время это невозможно в плагине Kotlin Eclipse.

Чтобы код Kotlin можно было использовать с Java, плагин Kotlin создает в эту папку так называемые файлы легкого класса. Эти файлы классов не содержат тела для методов, и они хранятся в памяти.

Фактические файлы классов, которые используются для запуска приложения, создаются только перед запуском, и они создаются в выходной папке по умолчанию. Пока что мы не можем создавать файлы классов на каждом из них, сохраняя их достаточно быстро, поскольку в плагине нет дополнительной инкассовой компиляции: не стесняйтесь повышать эту проблему.

Из краткого анализа кода плагина Kotlin, похоже, что правильным методом является KotlinCompiler.compileKotlinFiles . Он вызывается в двух контекстах:

  1. KotlinBuilder.build – это тот, который называется сборкой проекта; он делает трюк стека вызовов (или, скорее, взломать …), чтобы проверить, вызван ли он из LaunchConfigurationDelegate , и в зависимости от результатов компилирует весь проект (через собственный собственный compileKotlinFiles ) или просто делает заглушки в памяти.
  2. KotlinCompilerUtils.compileWholeProject – это фактически вызывается из 1; хороший статический метод, идеально подходящий для злоупотреблений, пока проблема не будет правильно решена в плагине. 🙂

Итак, я бы использовал метод из 2., завернутый таким же образом, как и файл compileKotlinFiles из файла в 1.