如何将 kotlin 类添加到 gradle JavaCompile 任务
Posted
技术标签:
【中文标题】如何将 kotlin 类添加到 gradle JavaCompile 任务【英文标题】:How to add kotlin class to gradle JavaCompile task 【发布时间】: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)
【问题讨论】:
仅供参考,如果您不想生成元模型,请参阅 kotlin-jpa-specification-dsl 元模型在我的其他java代码中使用。 【参考方案1】:Hibernate 元模型生成器被实现为 JSR 269 注释处理器。使用 Kotlin 时,您需要通过 applying the kapt compiler plugin 显式启用注释处理。当您这样做时,您会发现为 Kotlin 实体生成了元模型。
【讨论】:
以上是关于如何将 kotlin 类添加到 gradle JavaCompile 任务的主要内容,如果未能解决你的问题,请参考以下文章
使用 Gradle 和 Kotlin 构建一个自执行的 jar
将数据类的对象添加到 Kotlin 的 Firestore 时如何添加 Firebase 时间戳?