java - 基于自定义 Gradle Java 的插件不起作用

标签 java gradle gradle-plugin

我正在尝试实现一个基于 Gradle Java 的插件。我关注了this回答去做。

ROOT/plugin/src/main/java/com.test.plugin/ReleasePlugin.java

public class ReleasePlugin implements Plugin<Project> {

    @Override
    public void apply(Project project) {
        project.task("ggrelease");
    }

}

ROOT/plugin/src/main/java/com.test.plugin/ReleaseTask.java
public class GGReleaseTask extends DefaultTask {

    @TaskAction
    public void ggrelease() {
        System.out.println("Hello from ggrelease task");
    }
}

我可以在插件的消费者模块中看到该任务:

enter image description here

但是当我运行它时,我看不到消息。我试图抛出 GradleException而不是打印一条消息,但它不起作用。我只得到 BUILD SUCCESSFUL .

最佳答案

我发现了错误。您必须创建任务并分配实现任务的类:

public class ReleasePlugin implements Plugin<Project> {

    @Override
    public void apply(Project project) {
        project.getTasks().create("ggrelease", GGReleaseTask.class);
    }
}

代替:
public class ReleasePlugin implements Plugin<Project> {

    @Override
    public void apply(Project project) {
        project.task("ggrelease");
    }
}

关于java - 基于自定义 Gradle Java 的插件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33123028/

相关文章:

java - 如何用 Java 8 流替换下面的 for 循环代码

java - 如何摆脱 stringBuilder 末尾的尾随逗号和空格?

java - 如何在其他Gradle子项目中使用生成的EMF模型代码?

android - Gradle flatDir 模块路径

gradle - 如何从我的自定义gradle扩展访问嵌套的配置值?

java - 如何创建 .jar 冷

java - Fitnesse 无法在 Java 中引用外部 API?

android - 具有用于不同gradle任务的不同Android lintOptions

gradle - 如何在不修改 settings.gradle 的情况下添加 gradle 项目依赖项

gradle - 从Gradle插件设置类路径