如何使用 gradle 在 spring-boot 中生成 JPA 元模型?(+ lombok)

ip6*_*696 3 jpa gradle metamodel spring-data-jpa spring-boot

我想将 JPA 元模型添加到我的项目中 -Spring boot + gradle

我发现很多例子我该怎么做,但都是用Maven. 我还找到这个网站:https ://plugins.gradle.org/search?term=metamodel

并尝试前三个插件。对于每个插件,我都会遇到错误: error: cannot find symbol在标记为 lombok@Builder注释的类中,而某些类则不是entity。这是一些插件的示例:

    buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "com.github.iboyko.gradle.plugins:jpamodelgen-plugin:1.0.1"
    }
 }

    dependencies {
        compile ('org.hibernate:hibernate-jpamodelgen')
    }
Run Code Online (Sandbox Code Playgroud)

JPA metamodel1)哪个插件或方法是在 Spring 中创建的最官方(正确)的boot + spring-data-jpa + gradle

2)如何只指定包含的包 entities 而不扫描其他类?

3)如何与它交朋友lombok

编辑

我将此代码添加到 gradle 文件中:

sourceSets.configureEach { sourceSet ->
    tasks.named(sourceSet.compileJavaTaskName).configure {
        options.annotationProcessorGeneratedSourcesDirectory = file("$buildDir/generated/sources/java")
    }
}
Run Code Online (Sandbox Code Playgroud)

它生成classes_良好。之后我标记

generated/sources/java 
Run Code Online (Sandbox Code Playgroud)

生成的类的文件夹ass根(右键单击此文件夹并标记为)

在此输入图像描述

之后,我尝试在我的存储库中导入生成的类,IDE 会显示以下内容:

在此输入图像描述

对于每个模块,我有 2 个模块 -my_module并且my_module_main(我不明白为什么)和所有类生成,my_module但所有代码都在my_module_main. 如果我添加这个依赖项 - 我有这个:

在此输入图像描述

在生成的类中我有这个: 在此输入图像描述

Jan*_*mar 9

我正在努力解决同样的问题。最后,我通过在compileOnly和annotationProcessor表单中添加依赖项来使其工作。不要问我为什么,但它确实有效。

compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
compileOnly 'org.hibernate:hibernate-jpamodelgen'
annotationProcessor('org.hibernate:hibernate-jpamodelgen')
Run Code Online (Sandbox Code Playgroud)