2013-05-28 3 views
0

를 실행 내가JavaExec 작업은 항상

task antlr4(type: JavaExec) { 
    main = "org.antlr.v4.Tool" 
    args = project.getAntlrArgs() 
    classpath = configurations.compile 
} 

classes { 
    it.dependsOn([antlr4]) 
} 

antlr4 작업이 ANTLR4 몇 자바 파일을 생성하기 때문에 자바를 컴파일하기 전에 실행해야하는 다음과 같은 작업을해야합니다.

문제는 어떤 작업 (예 : clean 작업을 실행할 때마다)이 실행될 때마다 실행되므로 Java 파일을 컴파일하기 전에 만 실행되기를 원합니다.

내가 뭘 잘못하고 있니? 어떻게 해결할 수 있습니까?

+0

여기 및 http://forums.gradle.org에서 이중 게시하여 불필요한 작업을 생성하지 마십시오. –

+0

@PeterNiederwieser, 제안 주셔서 감사 드리며, 나는 그 일을 삼가겠다. 그래도 질문을 삭제할 수 없습니다. – Gautam

답변

1

게시 한 스 니펫으로는 항상 antlr4이 실행되지 않습니다. 문제는 빌드 스크립트의 다른 위치에 있어야합니다. Java 컴파일에서 antlr4 작업으로 생성 된 파일이 필요한 경우 이 아니라 compileJava.dependsOn(antlr4)을 수행해야합니다. 또는 구문에 따라 compileJava { dependsOn(antlr4) } (it.[]은 생략 할 수 있습니다).