Плагины компилятора
Плагины компилятора подключаются к процессу компиляции, чтобы анализировать или изменять код во время его компиляции, не изменяя сам компилятор. Например, они могут добавлять аннотации к коду или генерировать новый код, чтобы обеспечить его совместимость с другими фреймворками или API.
На этой странице описаны доступные вам плагины компилятора Kotlin и способы решения задачи, если ни один из них не подходит для вашего случая.
Команда Kotlin поддерживает следующие плагины компилятора:
Плагин |
Описание |
|---|---|
Автоматически делает классы с аннотациями и их члены |
|
Преобразует атомарные операции в эффективные, специфичные для платформы реализации, обеспечивающие параллельное выполнение без блокировок. |
|
Генерирует типизированные API, позволяющие безопасно работать с |
|
Генерирует JAR-файлы Application Binary Interface (ABI). |
|
Предоставляет доступ к классам Kotlin как к обычным объектам JavaScript, улучшая взаимодействие с инструментами и библиотеками JS. |
|
Запускает процессоры аннотаций Java для кода Kotlin и генерирует дополнительные исходные файлы. |
|
Позволяет коду Kotlin распознавать и использовать код, сгенерированный аннотациями Lombok в исходных файлах Java. |
|
Генерирует конструкторы без аргументов для классов с аннотациями, чтобы поддерживать фреймворки, которым требуются такие конструкторы. |
|
Улучшает сообщения об ошибках при сбое утверждений, показывая подробные значения каждой части выражения. |
|
Позволяет использовать в SAM-интерфейсах лямбда-выражения с получателями, обеспечивая синтаксис, более похожий на DSL. |
|
Генерирует код для сериализации и десериализации объектов Kotlin без рефлексии. |
Команда Android в Google поддерживает следующие плагины:
Плагин |
Описание |
|---|---|
Интегрирует компилятор Compose с Gradle, обеспечивая поддержку декларативного пользовательского интерфейса и оптимизаций для Compose. |
|
Автоматически генерирует реализации |
Если вам нужно адаптировать процесс компиляции способом, который не охватывают эти плагины, сначала проверьте, можно ли использовать API обработки символов Kotlin (KSP) или внешний линтер, например Android lint. Вы можете просмотреть Slack Kotlin или связаться с нами и попросить совета по вашему случаю.
Если вы всё ещё не нашли то, что вам нужно, вы можете создать собственный плагин компилятора. Используйте этот подход только в крайнем случае, поскольку API плагинов компилятора Kotlin нестабилен. Если вы создадите собственный плагин компилятора, вам придётся постоянно прикладывать значительные усилия для его поддержки, так как в каждом новом выпуске компилятора появляются несовместимые изменения.
© 2010–2026 JetBrains s.r.o. and Kotlin Programming Language contributors
Licensed under the Apache License, Version 2.0.
https://kotlinlang.org/docs/compiler-plugins-overview.html