Apply hibernate-gradle-plugin using plugins dsl syntax?

Viewed 1093

I want to use org.hibernate:hibernate-gradle-plugin in my project with plugins dsl style. This is my build.gradle.kts plugin section:

plugins {
    kotlin("jvm") version "1.3.31"
    id("io.spring.dependency-management") version "1.0.6.RELEASE"
    id("org.springframework.boot") version "2.1.5.RELEASE"
    id("org.jetbrains.kotlin.plugin.spring") version "1.3.31"
    id("org.jetbrains.kotlin.plugin.jpa") version "1.3.31"
}

Does anybody knows how to do this?

All of the documentation and posts are using the legacy plugin application. Like this: How to setup Hibernate Gradle plugin for bytecode enhancement?

2 Answers

It looks like they haven't registered this plugin in the Gradle Plugins Repository which rules out using the newer DSL without using a custom plugin resolution strategy.

For your case in build.gradle.kts

plugins {
    id("org.hibernate.orm") version "5.4.3.Final"
}

And in settings.gradle.kts

pluginManagement {
    resolutionStrategy {
        eachPlugin { 
            if (requested.id.id == "org.hibernate.orm") { 
                useModule("org.hibernate:hibernate-gradle-plugin:${requested.version}") 
            } 
        } 
    }
}

In addition to the perfectly working solution of @MarkRobbo you can use the following snippet to configure the options of the hibernate-gradle-plugin in build.gradle.kts

tasks.withType<org.hibernate.orm.tooling.gradle.EnhanceTask>().configureEach {
     options.enableLazyInitialization = true
}
Related