【问题标题】:Gradle custom Type : Default Task "error: cannot find symbol"Gradle 自定义类型:默认任务“错误:找不到符号”
【发布时间】:2020-06-05 12:22:21
【问题描述】:

我想用 JAVA 创建一个 SimpleTask Gradle。但是我无法编译我的项目,因为找不到“import org.gradle.api.DefaultTask”。 GradleVersion : 6.3

正如文档中所说,我在 root/buildSrc/src/main/java/SimpleTask.java 上创建了一个类

使用此代码,我有一个:“错误:找不到符号”符号:类 DefaultTask。

import org.gradle.api.DefaultTask;
import org.gradle.api.tasks.TaskAction;

public class SimpleTask extends DefaultTask {

}

我已尝试添加依赖项(但效果相同)

dependencies {
    // https://mvnrepository.com/artifact/org.gradle/api
    implementation group: 'org.gradle', name: 'api', version: '1.0'

【问题讨论】:

    标签: java gradle


    【解决方案1】:

    我不熟悉这种依赖关系,但如果它存在,它适用于五年前的 Gradle 1.0。这绝对不是你想要的。

    我不相信官方 Gradle API 是作为依赖项发布的。但是你可以使用 DependencyHandler.gradleApi() 方法声明对当前版本 Gradle 的 API 的依赖,如下所示:

    dependencies {
       implementation gradleApi()
    }
    

    【讨论】:

    • 实际上我现在使用的是 6.5.1,如果你在 buildSrc 中,依赖是隐式的。我的问题是我没有在 intelliJ 中使用 gradle java 插件,所以它不会自动使用它。
    【解决方案2】:

    不需要添加依赖项。 实际上我已经更新了 intelliJ 和 gradle/java 插件。当 intelliJ 扫描 buildSrc/src/main/java 目录时,它会将目录转换为源文件夹。和编译都可以。

    【讨论】:

      【解决方案3】:

      我在这里找到了一个很好的教程:https://www.jrebel.com/blog/using-buildsrc-custom-logic-gradle-builds

      我的问题是我在 buildSrc 中用 intelliJ 定义了一个“源根”。并且会导致编译错误。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-08-28
        • 1970-01-01
        • 2020-03-24
        • 2017-09-30
        • 2016-02-08
        • 2014-01-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多