根据documentation,我尝试使用Aspectj插件。
这是我在构建项目时收到的消息。
FAILURE: Build failed with an exception.
* Where:
Build file '/home/jesudi/projects/gradle-vscode/build.gradle' line: 22
* What went wrong:
A problem occurred evaluating root project 'security'.
> Failed to apply plugin [id 'aspectj.gradle']
> Could not create task ':compileAspect'.
> Could not get unknown property 'classesDir' for main classes of type org.gradle.api.internal.tasks.DefaultSourceSetOutput.
这是我的脚本:
buildscript {
repositories {
mavenCentral()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "org.apache.meecrowave:meecrowave-gradle-plugin:1.2.6"
classpath "gradle.plugin.aspectj:gradle-aspectj:0.1.6"
}
}
plugins {
id 'java'
}
project.ext {
aspectjVersion = '1.9.2'
}
apply plugin: 'aspectj.gradle'
apply plugin: "org.apache.microwave.microwave"
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
dependencies {
compile("org.apache.meecrowave:meecrowave-core:1.2.6")
compile("org.apache.meecrowave:meecrowave-specs-api:1.2.6")
}
meecrowave {
httpPort = 9090
// most of the meecrowave core configuration
}
这是gradle -version
的输出:
------------------------------------------------------------
Gradle 5.1.1
------------------------------------------------------------
Build time: 2019-01-10 23:05:02 UTC
Revision: 3c9abb645fb83932c44e8610642393ad62116807
Kotlin DSL: 1.1.1
Kotlin: 1.3.11
Groovy: 2.5.4
Ant: Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM: 11.0.2 (Oracle Corporation 11.0.2+9)
OS: Linux 4.15.0-20-generic amd64
答案 0 :(得分:1)
在gradle 4.x中不推荐使用classesDir
属性,在gradle 5.x中将其删除(请参见release notes)。
该插件显然没有得到维护。
答案 1 :(得分:1)
可能您的插件不是问题的根源,而是Gradle的版本。 第一次,我在libgdx游戏(Android Studio)中遇到相同的错误。 在build.gradle(desktop)文件中,“ classDir被重命名为classesDirs,它起到了帮助作用。
from files(sourceSets.main.output.classesDirs)
答案 2 :(得分:1)
在Gradle 5.x中,此属性已从classesDirs
重命名为classesDir
。
您可以找到更多信息here
答案 3 :(得分:0)
我收到了类似的错误消息,不是使用这个插件,而是使用 Grails (3.2.9) 创建的 HelloWorld 应用程序。就我而言,我已经使用 sdkman 将我当前的 Gradle 设置为 3.5 而不是 5,但问题仍然存在。事实证明,“grails” cli (https://github.com/grails/grails-core/blob/3.2.x/grails-shell/src/main/groovy/org/grails/cli/gradle/GradleUtil.groovy) 使用 Gradle 的默认 sdkman 版本(与“当前”版本不同)。 从 Grails 3.3.X 开始,可以在 gradle.properties 中设置“gradleWrapperVersion=3.5”,或者像以前一样使用 GRAILS_GRADLE_HOME 环境变量。