2012-08-30 10 views
7

Mam projekt, który ma zarówno kod scala i java, który obecnie zarządzam w eclipse przy użyciu wtyczki Scala IDE. Obecnie struktura katalogów jest zorganizowana w taki sposób, że niektóre pakiety zawierają kod java i scala. Istnieją klasy scala, które zależą od klas java i istnieją inne klasy java, które zależą od klas scala. Wtyczka obsługuje to wszystko w sposób przejrzysty - uważam (ale nie jestem w 100% pewny), że kompilator scala kompiluje zarówno kod Java, jak i Scala, w ten sposób, w jaki sposób obsługiwane są wzajemne zależności. Znalazłem kilka odniesień do kompilowania mieszanych projektów przy użyciu Mavena e.g. here, ale te, które widziałem, mówiły o rozdzieleniu java i scala na dwa osobne drzewa źródłowe. Maven próbuje najpierw skompilować kod SCAL, który zawodzi z powodu zależności od kodu java. Podobnie, jeśli kod java został skompilowany jako pierwszy, również zawiedzie, ponieważ zależności idą w obie strony. Czy istnieje sposób, aby Maven skompilował cały kod razem jak wtyczka eclipse? Chciałbym również mieć możliwość generowania projektu zaćmienia bez zbytniej ręcznej naprawy, jeśli to możliwe.Czy mogę skompilować projekt Scala z mieszanym kodem java i scala z zależnościami w Maven?

Odpowiedz

5

Zazwyczaj Maven struktura katalogów jest

src/ 
    main/ 
    java/ 
     com/foo/mypackage/ 
    scala/ 
     com/foo/mypackage/ 

Jeśli ustawisz rzeczy w ten sposób wtedy na pewno można mieć przekroje zależności między kodu Java i Scala. Zobacz strony maven-scala-plugin lub scala-maven-plugin na ten temat.

Nie polecam umieszczania kodu Java i Scala w tym samym katalogu.

+0

Próbowałem tego, ale musiałem popełnić błąd w moim pom. Zacząłem od dosłownego egzemplarza pom w pierwszym linku i zadziałało. Wydaje się działać z osobnymi lub mieszanymi drzewami źródłowymi. Dlaczego nie zaleca się łączenia scala i java w tym samym katalogu? – Shane

+0

Bo to nie jest sposób, w jaki wtyczka chce działać. Jeśli możesz sprawić, żeby działało, to jest fajne - daj nam znać. Ale moja rekomendacja zawsze będzie zgodna z przepływem ... – sourcedelica

+0

dlaczego nie jest dobrym pomysłem umieszczenie kodu Java i Scala w tym samym katalogu? – gosua

Powiązane problemy