2016-09-30 5 views
4

나는 scala, groovy 및 Java 용 세 개의 테스트 폴더가 있습니다.testCompiler 작업 사이의 순환 종속성

자바에서는 Groovy와 Groovy에 종속되어있는 클래스가 있습니다. 스칼라에 종속 된 클래스가 있습니다.

compileTestGroovy.dependsOn compileTestScala 
compileTestJava.dependsOn compileTestGroovy 

을하지만 미안은

Circular dependency between the following tasks: 
:compileTestGroovy 
+--- :compileTestJava 
| \--- :compileTestGroovy (*) 
\--- :compileTestScala 
    \--- :compileTestJava (*) 

(*) - details omitted (listed previously) 

미안 잘못하고 어떤 생각 Gradle을

에이 오류를 수신 :

그래서 난 내 Gradle을 빌드 파일이 의존 관계를 추가?

안부

+0

왜 compileTest 작업 종속성을 추가해야합니까? 이 두 줄을 주석 처리하여 빌드하면 어떻게됩니까? 세 개의 테스트 폴더가 모두 같은 프로젝트의 일부인 경우 클래스 종속성이 자동으로 해결됩니다. – RaGe

+0

순서를 지정하지 않고 Java가 먼저 가고 그루비가 마지막으로 스칼라가됩니다. 따라서 이러한 종속성이있는 클래스는 컴파일되지 않으며 작업이 실패합니다. – paul

답변

1

당신은 본질적으로 함께 소스를 둘 필요가 의미 joint compilation를 사용해야합니다. 워드 프로세서에서 (우리가 반드시 후자를 사용하지 않는 것이 좋습니다 있지만)

는 [...] 그루비 코드, 혼합 그루비와 자바 코드, 심지어 순수 자바 코드를 처리 할 수 ​​있습니다. 이 플러그인은 공동 컴파일을 지원하므로 은 Groovy와 Java 코드를 자유롭게 섞어서 양방향의 종속성으로 결합 할 수 있습니다. 예를 들어, Groovy 클래스는 Groovy 클래스를 확장하는 Java 클래스 을 확장 할 수 있습니다. 따라서 작업에 가장 적합한 언어 인 을 사용하고 필요하면 다른 언어의 클래스를 다시 작성할 수 있습니다.