Gradle-找不到方法wrapper()-依赖项目

Wit*_*upś 6 gradle gradlew build.gradle

我的项目结构如下所示:

-Main dir
  - .gradle-wrapper
  |  - gradle-wrapper.jar
  |  - gradle-wrapper.properties
  |
  - projects
     - library
     - library-consumer
Run Code Online (Sandbox Code Playgroud)

内部librarylibrary-consumer我都build.gradle拥有:

wrapper {
    jarFile = "${project.projectDir}/../../.gradle-wrapper/gradle-wrapper.jar"
    gradleVersion = '4.8.1'
}
Run Code Online (Sandbox Code Playgroud)

另外,在项目中,library-consumerbuild.gradle依赖于library项目

compile project(':library')
Run Code Online (Sandbox Code Playgroud)

library-consumersettings.gradle我已经包括library像说在这里

include ':library'
project(':library').projectDir = new File("../library")
Run Code Online (Sandbox Code Playgroud)

然后我在尝试时收到以下错误gradle build

Could not find method wrapper() for arguments [build_7cibagmqy9u5sctvqdtah2a8p$_run_closure1@134371ea] on project ':library' of type org.gradle.api.Project.
Run Code Online (Sandbox Code Playgroud)

有什么建议/解决方案吗?这两个项目都包括改变了如下包装器的路径:

set CLASSPATH=%APP_HOME%\..\..\.gradle-wrapper\gradle-wrapper.jar
Run Code Online (Sandbox Code Playgroud)

library 建立没有问题。

sma*_*c89 0

在版本 5 以下的 gradle 版本中,您必须声明一个包装器任务,而不是尝试配置现有任务。

请参阅此处的升级指南。

看起来您还没有升级到版本 5,因此您需要执行以下操作:

task wrapper(type: Wrapper) {
    jarFile = "${project.projectDir}/../../.gradle-wrapper/gradle-wrapper.jar"
    gradleVersion = '4.8.1'
}
Run Code Online (Sandbox Code Playgroud)