2016-07-17 9 views
17

Mam zamiar zacząć używać programowania Kotlin dla Androida oprócz Javy z powodu jego zalet. Zainstalowałem wtyczkę Android Studio i uwzględniłem odpowiednie zależności w moich plikach gradle.Czy pliki Kotlin powinny być umieszczane w oddzielnym katalogu źródłowym w systemie Android?

Więc czytałem z dokumentacji Kotlin i przepełnienie stosu, że jest możliwe, aby to osobny katalog źródłowy plików Kotlin, tak:

aplikacja:
-manifest
-java
-kotlin
-res

wiem, że mogę stworzyć tę Directo ry przez dodanie następujących do mojego pliku build.gradle:

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

Moje pytanie brzmi: powinny Kotlin plików „na żywo” z plików Javy w tym samym katalogu, czy nie?

Oprócz opinii chciałabym się dowiedzieć, czy jest jakaś specjalna konwencja, a jeśli tak, to dlaczego tak właśnie jest.

Jeśli nie, to jakie są zalety i wady każdej opcji?

Odpowiedz

22

Umieszczanie plików Kotlin w oddzielnym katalogu źródłowym istnieje jako udokumentowana możliwość, ponieważ we wczesnych (pre-1.0) wersjach Kotlin była to jedyna obsługiwana konfiguracja. Później plugin Kotlin Gradle stał się bardziej elastyczny, więc rozdzielenie katalogów nie jest już konieczne. Nie jestem świadomy żadnych korzyści, które można uzyskać, umieszczając pliki Kotlin w oddzielnym katalogu źródłowym.

Posiadanie osobnego katalogu źródłowego jest szczególnie niewygodne, gdy masz projekt Java, który stopniowo przekształcasz w Kotlin. Przeniesienie każdego przekonwertowanego pliku do innego katalogu źródłowego powoduje, że proces konwersji staje się niepotrzebnie bardziej uciążliwy.

+0

Dziękuję za odpowiedź. Mam już dość duży projekt Java (dla systemu Android), do którego mam zamiar dodać pliki Kotlin i przekonwertować kilka plików Java na Kotlin. Zgadzam się, że przenoszenie każdego przekonwertowanego pliku będzie żmudne i wyobrażam sobie, że byłoby również niewygodne poruszanie się po różnych katalogach, aby znaleźć plik Kotlin, który normalnie byłby w tym samym pakiecie co plik Java. W tej chwili preferuję opcję przechowywania wszystkich plików w jednym katalogu źródłowym, ale czy istnieje sposób na zmianę nazwy katalogu źródłowego 'java' na coś bardziej odpowiedniego. –

+0

Możesz użyć tego samego kodu instalacyjnego, który pokazano w twoim pytaniu, aby utworzyć katalog źródłowy z preferowaną nazwą i po prostu usunąć źródłowy katalog źródłowy "java". Jednak jeśli martwisz się konwencjami, nie sądzę, aby takie ustawienia były konwencjonalne. – yole

+0

Jeszcze raz dziękuję. Myślę, że będę nadal używał katalogu źródłowego 'java', a być może, gdy mam dużą liczbę plików kotlin, przeniesię je do osobnego katalogu źródłowego. –

4

Ponieważ umieszczanie plików nie ma większego znaczenia dla kompilatora Kotlin, konwencją jest umieszczenie w modułach "logicznie" w taki sam sposób, jak w przypadku plików Java.

Na przykład, jeśli zdecydowałeś się na refaktoryzację klasy Java poprzez konwersję jej na Kotlin, wynikowy plik Kotlin powinien zająć miejsce oryginalnego pliku Java.

+1

Dziękuję za odpowiedź.Czy istnieje sposób na zmianę nazwy katalogu źródłowego 'java', więc ma to więcej sensu, ponieważ zawierałoby nie tylko pliki źródłowe java, ale także pliki źródłowe kotlin? –

+1

To jest bardziej pytanie Stopnia, że ​​jeden Kotlin. Osobiście nie zadałbym sobie trudu, aby zmienić nazwę czegokolwiek na – voddan

+0

uzyskując wyjątek classnotfoundexception podczas próby uruchomienia pustego mainlincji kotlin? –

Powiązane problemy