gradle - Gradle和Gradlew的问题

标签 gradle

我有一个同时具有gradle(6.3)和gradlew的项目。当我执行“./gradlew构建”时,一切都很好。但是,当我“逐步构建”时,出现以下错误:

What went wrong:
A problem occurred evaluating root project ....
> Failed to apply plugin [id '...']
   > Could not create an instance of type ....
      > org.gradle.api.file.ProjectLayout.directoryProperty()Lorg/gradle/api/file/DirectoryProperty;

任何想法都可能导致包装器正常工作并且不发声吗?

谢谢-C

最佳答案

./gradlew build使用的版本与gradle build使用的版本不同。这正是gradle包装器的原因:它将查看文件gradle/wrapper/gradle-wrapper.properties的内容以找出要使用的Gradle版本,然后自动下载并使用该Gradle版本。您安装的Gradle版本6.3比gradlew(渐变包装器)脚本所使用的Gradle更新。这就是gradle build不起作用的原因:您的构建脚本与此新的gradle版本不兼容,它仅适用于gradlew脚本使用的较旧版本。

您看到的错误是由您的Gradle构建脚本与较新的Gradle版本不兼容引起的。让我们看一下第一部分:

> Could not create an instance of type ....
   > org.gradle.api.file.ProjectLayout.directoryProperty()Lorg/gradle/api/file/DirectoryProperty;

它告诉您Gradle在类directoryProperty中寻找方法ProjectLayout。该成员一直存在于Gradle版本5中(请参阅https://docs.gradle.org/5.0/javadoc/org/gradle/api/file/ProjectLayout.html),但在Gradle 6.3中不再存在(https://docs.gradle.org/current/javadoc/org/gradle/api/file/ProjectLayout.html)。因此Gradle API发生了更改,并且您的构建脚本不再兼容。

错误的第二部分:
> Failed to apply plugin [id '...']

告诉您这是在插件的实现中发生的(由id中的...提供)。这意味着要使用较新的gradle版本修复该错误,则需要修改该插件。

关于gradle - Gradle和Gradlew的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61413391/

相关文章:

gradle - 如何排除模块 cxf-rt-transports-http

java - android.support.design.widget.TabLayout - 无法解析符号 'design'

java - 配置 jacocoTestReport 以读取多个 .exec 文件作为输入

android studio中的android opencv和NDK

java - 使用 Gradle OSGI 插件扫描蓝图 XML 文件

jenkins - 使用环境值执行gradle任务

maven - 从 gradle 导出 Maven pom.xml 文件时注入(inject)构建 block 时遇到问题

java - 无法初始化类 com.sun.jna.Native Android Studio IDE fatal error

java - 将资源目录添加到greety的类路径中(Gradle插件)

gradle - 在根中定义的闭包在 child 中不可见