如何在带有参数的jar中调用gradle任务

时间:2018-11-20 00:30:48

标签: gradle

我想运行嵌入在jar中的gradle任务,该jar不是我自己生产的。这有可能吗?我还可以将gradle任务粘贴到本地build.gradle中并运行它,但是所有代码仍然需要引用jar才能实际运行主类。

1 个答案:

答案 0 :(得分:0)

您可以使用buildscript块添加包含要在buildscript类路径中使用的 Task 的jar。这样,您将能够在构建脚本中导入并使用此 Task 类。 buildscript块通常用于将外部Gradle插件jar添加到脚本类路径中,以便可以应用它们,但是您也可以引用不提供 plugin 实现而仅提供任务实现类。

示例

假设:

  • 外部jar的坐标为org.company.gradle:custom-tasks:0.1
  • Task 实现类为org.company.gradle.tasks.MyTask
  • Task 实现具有可配置的属性message

然后,您可以按以下方式实现构建脚本:

buildscript {
    repositories {
        // define repositories
    }
    dependencies {
        // make the external jar available in the build script classpath
        classpath "org.company.gradle:custom-tasks:0.1"
    }
}

// use the Task 
task 'myTask'(type: org.company.gradle.tasks.MyTask) {
    message = "custom message"
}