2013-04-25 98 views
3

找物业我做了自定义任务,名称MySqlTask​​.groovygradle这个,不能在buildSrc

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目录/主/常规。

我的构建文件是customtasksourcetree.gradle。

任务的CreateDatabase(类型:MySqlTask​​){SQL = 'CREATE DATABASE IF NOT EXISTS例如'}

当运行用的gradle然后customtasksrc.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中的自定义任务文件将在编译时自动编译并添加到classpath中。

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

有什么问题?谢谢。

回答

4

我认为这个问题是由于

+0

我需要导入我自定义任务在我的构建脚本的事实,你有没有在你的构建脚本导入MySqlTask​​?在http://www.gradleware.com/registered/books/building-and-testing/tasks.html中没有提及它。我会试着找到它。谢谢!。 – 2013-04-26 00:03:31

+0

如果您的任务类具有'package'语句,则您(仅)必须使用导入。显然你的不。尝试如果'gradle --stop'后面有一个干净的版本有帮助。也尝试删除'.gradle'目录。 – 2013-04-26 18:48:25

+0

Peter Niederwieser它的工作原理!谢谢! – 2013-04-30 07:22:25