我在我的Kotlin项目中遇到了配置ApplyJ的问题。我正在使用freefair插件,但它似乎不起作用。我启动我的应用程序没有问题,但没有考虑到这些方面。
我将我的方面放在src/main/aspectj源目录中的MetricAspect.kt文件中
我现在有一个gradle.build.kts文件,看起来像这样:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
//other plugins
id("io.freefair.aspectj") version "6.6.3"
val kotlinVersion = "1.7.21"
kotlin("jvm") version kotlinVersion
kotlin("plugin.spring") version kotlinVersion
//other plugins
}
allprojects {
apply(plugin = "org.jetbrains.kotlin.jvm")
apply(plugin = "io.gitlab.arturbosch.detekt")
apply(plugin = "com.diffplug.spotless")
apply(plugin = "io.freefair.aspectj")
apply(plugin = "kotlin-spring")
version = "1.0.0-SNAPSHOT"
java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
repositories {
maven {
url = uri("https://private.repo/public-maven-virtual/")
credentials {
username = user
password = password
}
}
}
dependencies {
kotlinCompilerPluginClasspath("gradle.plugin.aspectj:gradle-aspectj:0.1.6")
//other deps
implementation("org.aspectj:aspectjrt:1.9.7")
annotationProcessor("org.aspectj:aspectjtools:1.9.7")
//other deps
}
tasks.withType<KotlinCompile> {
kotlinOptions {
freeCompilerArgs = listOf("-Xjsr305=strict")
jvmTarget = "17"
}
}
tasks.withType<Test> {
useJUnitPlatform()
}
spotless {
//....
}
detekt {
buildUponDefaultConfig = true // preconfigure defaults
allRules = false // activate all available (even unstable) rules.
parallel = true
config = files("$rootDir/detekt.yml")
}
}
tasks {
bootJar {
enabled = false
}
}
字符串
关于它的文档非常稀少,每个人似乎都有一种方法来配置这个插件,这很奇怪。有没有官方的方法来做到这一点?
1条答案
按热度按时间6rqinv9w1#
编译器只能理解基于注解的Java语法和原生编译器语法。如果你想使用其他JVM语言,如Kotlin,你需要使用编译后编织。Freefair有一个选项。