【问题标题】:How to add kotlin class to gradle JavaCompile task如何将 kotlin 类添加到 gradle JavaCompile 任务
【发布时间】:2017-07-07 11:29:36
【问题描述】:

我使用 kotlin 和 java 和 spring boot 来开发我的项目。 我的构建工具是gradle,一个task定义如下:

configurations {
  providedRuntime
  jpametamodel
}

dependencies {
    jpametamodel ('org.hibernate:hibernate-jpamodelgen:4.3.11.Final')
}

task generateMetaModel(type: JavaCompile, group: 'build', description: 'metamodel generate') {

   source = sourceSets.main.java
   classpath = configurations.compile + configurations.jpametamodel
   options.compilerArgs = ["-proc:only"]
   destinationDir = sourceSets.generated.java.srcDirs.iterator().next()

  doFirst {
      delete(sourceSets.generated.java.srcDirs)
  }
}

此任务在没有 kotlin 类的情况下工作,但如果我添加 kotlin 类,则该任务无法通过抛出以下错误来工作:

Hibernate JPA 2 Static-Metamodel Generator 4.3.11.Final
/.../src/main/java/com/app/web/rest/UserResource.java:18: 
Cannot find .....
import com.app.web.rest.dto.SimpleUser;
                         ^
 Symbol:   Class SimpleUser
 Position: Package com.app.web.rest.dto

SimpleUser 在 kotlin 文件中定义:

 SimpleUser.kt
 data class SimpleUser(val str:String)

【问题讨论】:

标签: java jpa gradle spring-boot kotlin


【解决方案1】:

Hibernate 元模型生成器被实现为 JSR 269 注释处理器。使用 Kotlin 时,您需要通过 applying the kapt compiler plugin 显式启用注释处理。当您这样做时,您会发现为 Kotlin 实体生成了元模型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-02
    • 1970-01-01
    • 2020-07-12
    • 1970-01-01
    • 2014-03-30
    • 2014-12-31
    • 2022-06-17
    相关资源
    最近更新 更多