3

我做了自定义任务,命名为 MySqlTask​​.groovy

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

public class MySqlTask extends DefaultTask {
  def hostname = 'localhost'
  def sql

  @TaskAction
  def runQuery() {
   //to do something...
  }
}

而且,我把这个文件放在 rootProject/buildSrc/src/main/groovy 中。

我的构建文件是 customtasksourcetree.gradle。

任务 createDatabase(type: MySqlTask​​) { sql = 'CREATE DATABASE IF NOT EXISTS example' }

当我使用 customtasksrc.gradle 运行 gradle 时,会引发这样的错误。

FAILURE: Build failed with an exception.

* Where:
Build file '/Users/need4spd/Programming/Java/workspace/gradleTest/customtasksourcetree.gradle' line: 1

* What went wrong:
A problem occurred evaluating root project 'gradleTest'.
> Could not find property 'MySqlTask' on root project 'gradleTest'.

我已经读过,我在 buildSrc 中的自定义任务文件将在构建时自动编译并添加到类路径中。

我可以在 buildSrc/build/classes 中看到已编译的 MySqlTask​​.class。

有什么问题?谢谢。

4

1 回答 1

4

我认为问题是由于您没有在构建脚本中导入 MySqlTask

于 2013-04-25T11:15:23.943 回答