如何在Kotlin中使用QueryDSL并生成文件

我使用下面的maven pom.xml文件,不能生成querydsl文件。

我find了一个questrion: Kotlin-Kapt注释处理器与maven不兼容

我想从kotlin实体类生成jpa querydsl文件。

有一个非常好的例子在线如何使用gradle生成dsl文件https://github.com/JetBrains/kotlin-examples/blob/master/gradle/kotlin-querydsl/build.gradle 。

然而,我试图在maven中实现这一点,并没有运气。 我目前的pom在下面。 有谁知道这个问题可能是什么? 提前致谢。

它使用querydsl3,我使用4

  4.0.0 cn.techcave.chat jpa 0.0.1-SNAPSHOT jar jpa Kotlin Demo project for Spring Boot JPA  org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE     true UTF-8 UTF-8 1.8 1.2.10    org.springframework.boot spring-boot-starter-data-jpa   org.springframework.boot spring-boot-starter-data-rest   org.springframework.data spring-data-rest-hal-browser   org.jetbrains.kotlin kotlin-stdlib-jdk8 ${kotlin.version}   org.jetbrains.kotlin kotlin-reflect ${kotlin.version}   mysql mysql-connector-java runtime     io.springfox springfox-swagger-ui 2.8.0    io.springfox springfox-swagger2 2.8.0    io.springfox springfox-data-rest 2.8.0   com.querydsl querydsl-apt 4.1.4   com.querydsl querydsl-jpa 4.1.4   org.springframework.boot spring-boot-starter-test test   javax.xml.bind jaxb-api 2.3.0 <!--test-->    ${project.basedir}/src/main/kotlin ${project.basedir}/src/test/kotlin   org.springframework.boot spring-boot-maven-plugin   kotlin-maven-plugin org.jetbrains.kotlin ${kotlin.version}   spring  1.8    kapt  kapt    /src/main/kotlin <!--${project.basedir}/src/main/java-->    com.querydsl querydsl-apt 4.1.4 jpa   <!----> <!--target/generated-sources/java--> <!--com.querydsl.apt.QuerydslAnnotationProcessor--> <!---->    compile compile  compile    test-compile test-compile  test-compile      org.jetbrains.kotlin kotlin-maven-allopen ${kotlin.version}    <!----> <!--com.mysema.maven--> <!--apt-maven-plugin--> <!--1.1.3--> <!----> <!----> <!----> <!--process--> <!----> <!----> <!--target/generated-sources/java--> <!--com.mysema.query.apt.jpa.JPAAnnotationProcessor--> <!----> <!----> <!----> <!---->    

谢谢

AFAIK,这是不可能的,因为QueryDSL插件分析源,而不是字节码。 当然,它不能理解科林类的来源。

所以我看到的唯一方法是将实体类移动到单独的模块中,并用java重写它们。