Hibernate Gradle插件相当于hibernate-enhance-maven-plugin
,并提供构建时代码增强功能。 official docs未提及apply plugin: 'something'
行。如果我按照指南说的那样做,我得到:
无法为参数找到方法hibernate()...
我尝试使用apply plugin: 'enhance'
猜测插件名称(如this thread建议的那样)和apply plugin: 'org.hibernate.orm'
(如this test建议的那样),但它只是说带有该ID的插件未知
有没有人设法成功设置此插件?
我的build.gradle如下:
allprojects {
group 'xxx'
version '1.0-SNAPSHOT'
}
subprojects {
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
...
}
}
project(':xxx-model') {
buildscript {
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath "org.hibernate:hibernate-gradle-plugin:5.0.7.Final"
}
}
apply plugin: 'org.hibernate.orm'
hibernate {
enhance {}
}
}
... more unrelated project blocks here
将buildscript{...}
移动到根allprojects
和subprojects
进行实验,但没有任何有用的结果。
答案 0 :(得分:11)
完整的示例如下所示:
apply plugin: 'java'
repositories {
mavenLocal()
mavenCentral()
}
buildscript {
repositories {
mavenLocal()
mavenCentral()
}
dependencies {
classpath "org.hibernate:hibernate-gradle-plugin:5.1.0.Final"
}
}
apply plugin: 'org.hibernate.orm'
hibernate {
enhance {
enableLazyInitialization= true
enableDirtyTracking = true
enableAssociationManagement = true
}
}
dependencies {
compile 'org.hibernate:hibernate-core:5.1.0.Final'
}
答案 1 :(得分:4)
apply plugin: 'org.hibernate.orm'
插件代码表明您从测试中得到的内容是正确的。您可能缺少的是repositories
部分中的buildScript
部分,用于从中获取插件jar。
答案 2 :(得分:4)
字节码增强的官方文档(从5.1开始)实际上是User Guide。该文档仍未提及应用此插件,因为我们假设使用Gradle有一些基本的Gradle知识;)但是,用户指南部分可能更好地指定如何应用插件(我在Jira中创建了an issue为了那个原因)。
与此同时,该插件的ID名称为org.hibernate.orm
,因此您需要添加:
apply: 'org.hibernate.orm'