spring-boot - 无法使用gradle和sts生成JPA元模型casse

标签 spring-boot gradle spring-tool-suite java-11 jpa-2.2

关于如何设置项目有很多不同的信息,因此生成JPA元模型可在构建中使用,但对我而言不起作用。我正在使用Java 11,gradle 5.4.1和STS(同时尝试了STS 3.9.8和4.2.1)。
我对注解的gradle设置如下所示:

annotationProcessor(
            "javax.xml.bind:jaxb-api",
            "org.projectlombok:lombok",
            "org.hibernate:hibernate-jpamodelgen",
)
compileJava {
    def relativePath = "out/production/classes/generated"
    sourceSets.main.java {
        srcDir(relativePath)
    }
    def generatedSourceDir = project.file(relativePath)
    options.annotationProcessorGeneratedSourcesDirectory = generatedSourceDir
}

我还右键单击了项目>属性> Java编译器>注释处理,然后选择:
  • 启用项目特定的设置
  • 启用注释处理
  • 在编辑器
  • 中启用处理
  • 生成的源导演设置为out/production/classes/generated

  • 在>工厂路径中,我选择了:
  • 启用项目特定的设置
  • 添加了外部JAR hibernate-jpamodelgen-5.3.7.Final.jar
  • 添加了外部JAR javax.persistence-api-2.2.jar

  • 有人可以看到我想念还是做错了吗?谢谢。

    最佳答案

    我使用net.ltgt.apt-eclipse插件使其运行。
    我关注了博客文章:http://dplatz.de/blog/2018/gradle-apt.html

    我正在使用Eclipse 2019-03和Gradle 5.4.1

    博客描述了另一个注释处理器时,我将描述此处采取的步骤

  • 导入的net.ltgt.apt-eclipse插件。build.gradle如下所示:
  • plugins {
        id 'org.springframework.boot' version '2.1.4.RELEASE'
        id 'java'
        id "net.ltgt.apt-eclipse" version "0.18"    
    }
    
    apply plugin: 'io.spring.dependency-management'
    
    group = 'com.example'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '11'
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
        compileOnly 'org.projectlombok:lombok:1.16.18'
        runtimeOnly 'com.h2database:h2'
    
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
    
        annotationProcessor(
                "javax.xml.bind:jaxb-api",
                "org.projectlombok:lombok",
                "org.hibernate:hibernate-jpamodelgen"
        )
    
    }
    
  • 从命令行执行以下命令:
  • gradle eclipseJdtApt eclipseFactorypath eclipseJdt
    
  • 重新导入了gradle项目。清理项目。
    右键单击该项目,然后选择Gradle / Refresh Gradle Project。之后,Project / Clean
  • 检查Properties / Java Compiler / Annotation Processing / Factory Path中是否存在JPA注释处理器注意:我按顺序输入了以下条目:
  • jaxb-api-2.3.1.jar
  • lombok-1.18.6.jar
  • hibernate-jpamodelgen-5.3.9.Final.jar
  • javax.activation-api-1.2.0.jar
    -jboss-logging-3.3.2.Final.jar
  • 运行构建

  • 请注意,我删除了生成文件的自定义目录,现在它们已生成为.apt_generated,但对此我感到满意。

    希望有帮助!

    关于spring-boot - 无法使用gradle和sts生成JPA元模型casse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56128267/

    相关文章:

    java - 多个 Spring Boot 应用程序,只想运行一个

    java - log4j2 spring boot 查找无法从 application.properties 中读取属性

    gradle - 从 gradle 中的 jar 文件中排除模块依赖项

    spring - 如何从 STS Boot Dashboard 中删除不需要的项目

    eclipse - 完成所有这些步骤后,STS 仍然很慢

    spring-boot - Spring 启动 oauth2 : How to set the resource parameter in the authorization request to make adfs happy?

    java - 我如何将 Spring Security 与我的 React-Spring Boot 应用程序一起使用

    spring-boot - 使用JMeter进行RabbitMQ应用程序负载测试的后端Spring引导

    eclipse - 在 Spring Tool Suite/Eclipse 中配置 APR 连接器

    java - 在非 Spring 类中获取 Spring Boot 属性