Package st.orm.gradle

Class StormPlugin

java.lang.Object
st.orm.gradle.StormPlugin
All Implemented Interfaces:
org.gradle.api.Plugin<org.gradle.api.Project>

public class StormPlugin extends Object implements org.gradle.api.Plugin<org.gradle.api.Project>
Applies Storm ORM to a Kotlin or Java project.

The plugin imports the Storm BOM and adds the core dependencies for the detected language path: Kotlin projects (the org.jetbrains.kotlin.jvm plugin is applied) get storm-kotlin, the metamodel processor on every source set's KSP configuration (ksp, kspTest, and so on), and the Storm compiler-plugin variant matching the project's Kotlin version; Java projects get storm-java21, the annotation processor on every source set's processor configuration, and the --enable-preview flags its String Templates require on JDK 21. All Storm coordinates use the plugin's own version: the plugin and the artifacts are released together.

The plugin has no compile-time dependency on the Kotlin Gradle plugin or KSP: it reacts to plugin ids and wires dependencies by configuration name. KSP ships bundled with the plugin (as a preferred version, so a KSP version the build applies itself always wins the classpath) and is applied automatically when the Kotlin plugin is declared before st.orm and the bundled version is the recommended one for the project's Kotlin version. Kotlin versions that pair with their own KSP builds are left to apply it explicitly; when it is missing there, the build fails with the exact line to add. Set the Gradle property storm.autoApplyKsp=false to opt out of the automatic application.

  • Constructor Details

    • StormPlugin

      public StormPlugin()
      Creates the plugin. Gradle instantiates this type when the plugin is applied.
  • Method Details

    • apply

      public void apply(org.gradle.api.Project project)
      Specified by:
      apply in interface org.gradle.api.Plugin<org.gradle.api.Project>