build.gradle 错误:使用 kotlin DSL 时"You must set the property 'aspectjVersion' before applying the asp



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

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

val aspectjVersion = "1.9.3"
plugins {
java
id("aspectj.gradle") version "0.1.6"
}
group = "java-agents-demo"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
mavenLocal()
jcenter()
}
dependencies {
implementation("org.aspectj","aspectjrt", aspectjVersion)
implementation("org.aspectj","aspectjweaver", aspectjVersion)
testCompile("junit", "junit", "4.12")
}
configure<JavaPluginConvention> {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}

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

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

任何人都可以帮助我以正确的方式为我的项目设置 aspectJ 插件吗?

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

所以val aspectjVersion = "1.9.3"定义了一个局部变量,但插件正在寻找项目属性,请注意,这也意味着插件不能立即应用,因为插件块在build.gradle.kts的其余部分之前被评估(请参阅插件 DSL 的限制),请尝试以下操作:

val aspectjVersion by extra("1.9.3")
plugins {
java
id("aspectj.gradle") version "0.1.6" apply false
}
apply(plugin = "aspectj.gradle")

有关详细信息,请参阅 Gradle 文档中有关其他属性的信息。

相关内容

最新更新