Symbol-export is a tool for exporting symbols from Kotlin libraries so that they can be referenced by tooling such as compile plugins or annotation processors.
Features:
- Compile time errors if symbol names change
- Integrations with the Kotlin compiler, KSP, and Kotlinpoet
- Reading and writing of annotation instances
All you need to do is apply the Gradle plugins to the appropriate projects and add a dependency between the exported symbols and the project that uses them.
plugins {
id("dev.rnett.symbol-export.export")
}
name = "foobar"package foo.bar
@ExportSymbol
fun bar() {
}
@ExportSymbol
class FooService {
}plugins {
id("dev.rnett.symbol-export.import")
}
dependencies {
importSymbols(project(":foobar"))
}val bar = Symbols.foobar.foo_bar_bar
val fooService = Symbols.foobar.foo_bar_FooServiceBy default, the Symbols object is generated with a package matching the importing project's group ID.
Documentation can be found at symbol-export.rnett.dev.