2016-07-17 3 views
17

Java의 이점 때문에 Android 개발 용으로 Kotlin을 사용할 것입니다. Android Studio 플러그인을 설치하고 관련 파일을 내 gradble 파일에 포함 시켰습니다.Kotlin 파일을 Android의 별도 소스 디렉토리에 저장해야합니까?

그래서

나는, 코 틀린 파일에 대한 별도의 소스 디렉토리를 포함과 같이하는 것이 가능하는 코 틀린 문서 및 스택 오버플로에서 읽었습니다 :

응용 프로그램 :
-manifest
-java
-kotlin
내가이 directo를 만들 수 있습니다 알고

-res

sourceSets { 
    main.java.srcDirs += 'src/main/kotlin' 
} 

내 질문은 : 내 build.gradle 파일에 다음을 추가하여 스피 이 같은 디렉토리에있는 파일 '라이브'자바 파일과를 코 틀린 여부를해야합니까?

의견 외에도이 특별한 협약이 있는지, 그리고 그렇다면 그것이 왜 그런지에 대해 알고 싶습니다.

그렇지 않은 경우 각 옵션의 장단점은 무엇입니까?

답변

22

초기 Kotlin 버전 (1.0 이전)에서는 유일하게 지원되는 설정이므로 별도의 소스 디렉토리에 Kotlin 파일을 넣는 것이 문서화 된 가능성으로 존재합니다. 그 후, Kotlin Gradle 플러그인은 더 유연 해 졌으므로 디렉토리 분리가 더 이상 필요하지 않습니다. 필자는 Kotlin 파일을 별도의 소스 디렉토리에 저장함으로써 얻을 수있는 이점을 알지 못합니다.

점차적으로 Kotlin으로 변환하는 Java 프로젝트가있을 때 별도의 소스 디렉토리를 갖는 것이 특히 불편합니다. 변환 된 각 파일을 다른 소스 디렉토리로 이동하면 변환 프로세스가 불필요하게 더 복잡해집니다.

+0

답장을 보내 주셔서 감사합니다. 이미 Kotlin 파일을 추가하고 Kotlin에 몇 가지 Java 파일을 변환 할 예정인 상당히 큰 Java 프로젝트 (Android 용)가 있습니다. 나는 각각의 변환 된 파일을 옮기는 일이 지루할 것이라는 것에 동의하며, Java 파일과 동일한 패키지하에있는 Kotlin 파일을 찾기 위해 다른 디렉토리를 탐색해야하는 것이 불편할 것이라고 상상한다. 현재, 모든 파일을 하나의 소스 디렉토리 아래에 두는 옵션을 선호하지만,'java' 소스 디렉토리의 이름을 더 적절한 이름으로 변경하는 방법이 있습니다. –

+0

질문에 표시된 것과 동일한 설치 코드를 사용하여 원하는 이름으로 소스 루트를 만들고 "java"소스 루트를 간단하게 삭제할 수 있습니다. 그러나 컨벤션에 대해 걱정한다면, 나는 그런 설정이 일반적인 것이라고 생각하지 않는다. – yole

+0

다시 한번 감사드립니다. 이제는'java' 소스 디렉토리를 계속 사용하고, 많은 수의 kotlin 파일을 가지고있을 때는 별도의 소스 디렉토리로 옮길 것입니다. –

4

파일 배치가 Kotlin 컴파일러에 많은 영향을 미치지 않으므로 Java 파일과 같은 방식으로 모듈을 "논리적으로"배치해야합니다.

예를 들어 Java 클래스를 Kotlin으로 변환하여 리팩터링하는 경우 최종 Kotlin 파일이 원래 Java 파일 대신 사용됩니다.

+1

답변 해 주셔서 감사합니다.'java' 소스 디렉토리의 이름을 바꿀 수있는 방법이 있습니까? java 소스 파일뿐만 아니라 kotlin 소스 파일까지 포함 할 수 있습니다. –

+1

그것은 Kotlin보다 더 심각한 문제입니다. 개인적으로 아무 것도 바꿀 필요가 없었습니다 – voddan

+0

빈 kotlin mainactivity를 실행할 때 classnotfoundeception을 받고 있습니까? –

관련 문제