我创建了一个自定义任务,名称为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文件。
有什么问题吗?谢谢。
package
语句时,才需要使用导入。显然你的没有。尝试运行gradle --stop
,然后进行一次干净的构建。还可以尝试删除.gradle
目录。 - Peter Niederwieser