我正在尝试通过以下方式使用 AspectJ 编织 Java 和 Kotlin 类文件:
android.applicationVariants.all { variant ->
JavaCompile javaCompile = variant.javaCompiler
javaCompile.doLast {
String[] args = ["-showWeaveInfo",
"-1.8",
"-inpath", javaCompile.destinationDir.toString(),
"-aspectpath", javaCompile.classpath.asPath,
"-d", javaCompile.destinationDir.toString(),
"-classpath", javaCompile.classpath.asPath,
"-bootclasspath", project.android.bootClasspath.join(
File.pathSeparator)]
我已确保 Kotlin 路径包含在适当的路径中,但没有处理任何 Kotlin 类。
您如何确保以这种方式处理 Kotlin 类文件?
最佳答案
该任务称为 KotlinCompile
,因为 Gradle Kotlin DSL不同(这里是 examples )。
不确定您的脚本是否可以直接迁移,但它可能是 variant.kotlinCompiler
。
或者,可以类似地挂接到这些任务:
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
doLast {
}
}
.kt
未被处理是因为 Java 编译器无法识别它们。假设您可能需要 KAPT ,以便处理那些 AspectJ 注释。
关于java - kotlin 类在 variant.javaCompiler.doLast 上不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52725097/