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

时间:2019-05-14 10:25:38

标签: 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

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

1 个答案:

答案 0 :(得分:0)

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

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

正如博客中描述的另一个注释处理器一样,我将描述此处采取的步骤

  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"
    )

}
  1. 从命令行执行以下命令:
gradle eclipseJdtApt eclipseFactorypath eclipseJdt
  1. 重新导入了gradle项目。清理项目。 右键单击该项目,然后选择Gradle / Refresh Gradle Project。然后,Project / Clean

  2. 检查了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
  3. 运行版本

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

希望有帮助!