gradle错误:“在使用kotlin DSL时,必须在应用aspectj插件之前设置属性'aspectjVersion'。”

gradle错误:“在使用kotlin DSL时,必须在应用aspectj插件之前设置属性'aspectjVersion'。”,gradle,build.gradle,gradle-plugin,gradle-kotlin-dsl,Gradle,Build.gradle,Gradle Plugin,Gradle Kotlin Dsl,我想在使用kotlin DSL的gradle项目中配置aspectJ插件 下面是我的build.gradle.kts文件 当我运行compileJava项目时,出现错误,在应用aspectj插件之前,必须设置属性“aspectjVersion” 我在构建文件中设置了aspectjVersion,但我不知道其中的错误是什么 有人能帮我以正确的方式为我的项目设置aspectJ插件吗?因此val aspectjVersion=1.9.3定义了一个局部变量,但该插件正在查找项目属性,请注意,这也意味着插

我想在使用kotlin DSL的gradle项目中配置aspectJ插件

下面是我的build.gradle.kts文件

当我运行compileJava项目时,出现错误,在应用aspectj插件之前,必须设置属性“aspectjVersion”

我在构建文件中设置了aspectjVersion,但我不知道其中的错误是什么

有人能帮我以正确的方式为我的项目设置aspectJ插件吗?

因此val aspectjVersion=1.9.3定义了一个局部变量,但该插件正在查找项目属性,请注意,这也意味着插件不能直接应用,因为插件块是在构建的其余部分之前计算的。gradle.kts请参见,请尝试以下方法:

val aspectjVersion by extra("1.9.3")

plugins {
    java
    id("aspectj.gradle") version "0.1.6" apply false
}

apply(plugin = "aspectj.gradle")

有关详细信息,请参阅上的Gradle文档。

您还可以在Gradle.properties文件中定义aspectjVersion=1.9.5,因为它是在插件之前加载的。这也适用于Gradle 7的兼容性。

@RajkumarNatarajan我编辑了答案以显示更完整的示例;基本上,由于插件DSL的工作方式,无法立即应用此插件,因为它会在评估build.gradle.kts的其余部分以及设置此属性之前检查此属性。
val aspectjVersion by extra("1.9.3")

plugins {
    java
    id("aspectj.gradle") version "0.1.6" apply false
}

apply(plugin = "aspectj.gradle")