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

时间:2018-12-20 12:58:07

标签: spring-boot jpa gradle spring-data-jpa metamodel

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

我发现很多示例我该怎么做,但是全部使用Maven。我也找到这个网站:https://plugins.gradle.org/search?term=metamodel

,然后尝试前三个插件。对于每个插件,我都会遇到错误:error: cannot find symbol在标记为龙目岛@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')
    }

1)在春季JPA metamodel中创建哪个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")
    }
}

,它会产生classes_的罚款。之后,我标记

generated/sources/java 

生成的类的文件夹ass根(精确到此文件夹并标记为)

enter image description here

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

enter image description here

对于每个模块,我有2个模块-my_modulemy_module_main(我不明白为什么),所有类都在my_module中生成,但是所有代码都在my_module_main中生成。如果我添加此依赖项-我有:

enter image description here

在生成的类中,我有这个: enter image description here

2 个答案:

答案 0 :(得分:1)

您使用Spring Initalizr生成项目了吗?

这是您从Initializr获得的(期待我自己添加的jpamodelgen):

function checkeven(num) {
        if (num === 0) {
            return true;
        }
        else if (num === 1) {
            return false;
        }
        else {
            return checkeven(num - 2);
        }
    
} 
 console.log(checkeven(8));
    console.log(checkeven(9));

您可以在GitHub上找到一个演示项目:

https://github.com/simasch/demo-gradle-jpa

在IntelliJ中,您可以右键单击generate / sources / java并选择

答案 1 :(得分:0)

我正在努力解决同一问题。最终,我通过在compileOnly和注解处理器形式中添加了两个依赖关系来使其工作。不要问我为什么,但是它可以工作。

compileOnly 'org.projectlombok:lombok:1.18.10'
annotationProcessor 'org.projectlombok:lombok:1.18.10'
compileOnly 'org.hibernate:hibernate-jpamodelgen'
annotationProcessor('org.hibernate:hibernate-jpamodelgen')