2013-04-25 2 views
3

에서 속성을 찾을 수 없습니다 나는 내가 그루비/주 rootProject/buildSrc/SRC /이 파일을 넣어, 사용자 지정 작업, 이름 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... 
    } 
} 

을 만들어.

내 빌드 파일은 customtasksourcetree.gradle입니다.

작업 createDatabase (유형 : MySqlTask) 나는 다음과 같은 오류가 발생 customtasksrc.gradle와 Gradle을 실행하면

{SQL은 = 'NOT 예를 존재하는 경우 DATABASE 만들기'}.

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

내 생각에이 문제는 빌드 스크립트에서 MySqlTask를 가져 오지 않았기 때문에 발생했습니다.

+0

빌드 스크립트에서 내 사용자 지정 작업을 가져와야합니까? http://www.gradleware.com/registered/books/building-and-testing/tasks.html에는 언급이 없습니다. 나는 그것에 대해 발견하려고 노력할 것이다. 감사!. –

+0

작업 클래스에'package' 문이 있으면 당신 만이 가져 오기를 사용해야합니다. 분명히 너의 것이 아니야. 'gradle --stop'과 깨끗한 빌드가 도움이되면 시도해보십시오. '.gradle' 디렉토리도 삭제하십시오. –

+0

Peter Niederwieser 그것은 작동합니다! 감사! –