2017-02-13 3 views
2

kotlin과 관련된 문제를 해결할 수 없어서 플러그인을 구현하기 위해 groovy으로 돌아 가기로했습니다.groovy가 kotlin 클래스를 해결할 수 없습니다

그러나 문제가 발생했습니다. 나는 그러한 프로젝트 구조를 가지고있다.

enter image description here

는 모든 클래스를 다시하지 않기 위해 나는 kotlin에서 구현 클래스를 재사용하기로 결정했다.

그러나 내 수업 FileProcessingCoreGroovy & DownloadCoreGroovy 클래스 ProcessStreamUnpackStream를 해결 할 수 없습니다.

나는 그들이 서로를 자유롭게 사용할 수 있어야한다고 생각했지만 틀렸어. 문제가 무엇입니까?

클래스 자체가 (그래서 붉은 색으로 표시되지 않고) IDE에 의해 잘 가져

enter image description here

콘솔 출력 (I 내가 PluginUtils에서 kotlin 클래스를 가져 다른 클래스를 사용하여 다음과 같습니다)

:clean                   
:compileKotlin (...multiple deprecated messages...) 
:compileJava UP-TO-DATE  
:compileGroovy     
startup failed:     
D:\groovy_apps\MISC\gradle-app-environment-plugin\src\main\groovy\com.lapots.gradle.plugins.appenv\ApplicationEnvironmentGroovyPlugin.g 
roovy: 4: unable to resolve class com.lapots.gradle.plugins.appenv.core.PluginUtils 
@ line 4, column 1. 
    import com.lapots.gradle.plugins.appenv.core.PluginUtils 
^       
+0

Grooty 파일 전에 kotlin 파일을 컴파일합니까? – cfrick

+0

흠. 나는 기본 순서를 사용하고 그것에 따라'compileKotlin','compileJava','compileGroovy' 순서로 컴파일합니다. – lapots

+0

컴파일 또는 런타임시 오류가 발생합니까? – cfrick

답변

0

나는 동일한 문제가있었습니다. 그것은 Kotlin 동반자 객체와 관련이 있습니다. 정적 함수를 companion 객체에서 패키지 수준으로 옮겼으며 작동하기 시작했습니다.

3

너무 단순하지 않은 것처럼 보입니다.

내가

compileGroovy { 
    dependsOn tasks.getByPath('compileKotlin') 
    classpath += files(compileKotlin.destinationDir) 
} 

을 추가 그리고 그것은 일, https://discuss.gradle.org/t/kotlin-groovy-and-java-compilation/14903/2

사용 제안 거기에서 참조하십시오.

+0

테스트 컴파일을 위해 이것을 복제 할 수도 있습니다. compileGroovy를 compileTestGroovy로 대체하고 compileTestKotlin을 사용하여 Kotlin을 컴파일하십시오. –

관련 문제