Java 如何添加delombok代码compileKotlin任务
免责声明:这是Gradle特有的,而不是lombok或Kotlin特有的。这适用于Maven,但我正在努力解决如何使用Gradle实现同样的效果(以我一半的知识)。 如何使用Java 如何添加delombok代码compileKotlin任务,java,kotlin,gradle,lombok,gradle-kotlin-dsl,Java,Kotlin,Gradle,Lombok,Gradle Kotlin Dsl,免责声明:这是Gradle特有的,而不是lombok或Kotlin特有的。这适用于Maven,但我正在努力解决如何使用Gradle实现同样的效果(以我一半的知识)。 如何使用src/main/java和${project.buildDir}/generated/sources/delombok/java/main为lombok和Kotlin编译器选择性地提供源代码集 问题详细信息和用例:我从Java调用Kotlin,一些Kotlin文件使用带有Lombok注释的Java类。所以我的想法是(我在M
src/main/java
和${project.buildDir}/generated/sources/delombok/java/main
为lombok和Kotlin编译器选择性地提供源代码集
问题详细信息和用例:我从Java调用Kotlin,一些Kotlin文件使用带有Lombok注释的Java类。所以我的想法是(我在Maven中也遵循了这一点)首先让delombok生成源->然后让Kotlin使用delombok生成的源集来准备最终结果。
问题是,当我这样做时,它会将这个源代码集附加到src/main/java
(这会导致编译失败)
当我使用setSrcDirs
而不是像下面这样使用srcDirs
时,lombok无法从src/main/java
中提取java文件(这很奇怪,因为我只在compileKotlin
中设置了它,而不是顶级源代码集)
我过去在支持Lombok的Java项目中使用过Kotlin,没有任何问题。 事情可能已经发生了变化,但我记得我所做的唯一一件事是将Lombok声明为编译时依赖项和注释处理器:
dependencies {
compileOnly("org.projectlombok:lombok:1.18.8")
annotationProcessor("org.projectlombok:lombok:1.18.8")
}
你的Gradle文件中确实有
ourceSets
,还是这是一个复制/粘贴错误?哦,对不起,这是粘贴错误。让我更正一下,谢谢,但它已经不起作用了:(
compileKotlin {
dependsOn(delombok)
sourceSets.main {
java.setSrcDirs(listOf("${project.buildDir}/generated/sources/delombok/java/main"))
}
}
dependencies {
compileOnly("org.projectlombok:lombok:1.18.8")
annotationProcessor("org.projectlombok:lombok:1.18.8")
}