2012-08-30 20 views
7

Şu anda scala IDE eklentisini kullanarak tutulmakta olan scala ve java kodlarına sahip bir projem var. Şu anda dizin yapısı, bazı paketlerin içinde hem java hem de scala kodu olacak şekilde düzenlenmiştir. Java sınıflarına dayanan ve scala sınıflarına dayanan diğer java sınıfları olan scala sınıfları vardır. Eklenti, tüm bunları şeffaf olarak ele alır - Bence (ancak% 100 emin değilim), scala derleyicisinin hem java hem de scala kodunu birlikte çapraz bağımlılıkların nasıl ele alındığıyla bir araya getirdiğini. Maven e.g. here'u kullanarak karma projeler derlemek için bazı referanslar buldum ama java ve scala'yı iki ayrı kaynak ağacına ayırmaktan bahsettiklerimi gördüm. Maven, önce java kodundaki bağımlılıklar nedeniyle başarısız olan scala kodunu derlemeye çalışır. Benzer şekilde, eğer java kodu ilk olarak derlenmişse, bağımlılıklar her iki yöne de giderken de başarısız olur. Maven'in eclipse eklentisi gibi tüm kodu bir araya getirmesinin bir yolu var mı? Mümkünse daha sonra manuel düzeltme yapmadan bir tutulma projesi üretme yeteneğine sahip olmak isterim. Eğer Java ve Scala kodu arasındaki çapraz bağımlılıkları olabilir kesin sonra bu şekilde şeyler kurarsanızMaven'de bağımlı iki yolla karışık java ve scala koduyla bir Scala projesi oluşturabilir miyim?

cevap

5

zamanki Maven dizin yapısı

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

olduğunu. Konuyla ilgili maven-scala-plugin veya scala-maven-plugin sayfalarına bakın.

Java ve Scala kodunu aynı dizine koymanızı önermem.

+0

Bunu ben denedim ama pompamda bir hata yapmış olmalıyım. İlk linkte pom'nın sözlü bir kopyasıyla başladım ve işe yaradı. Ayrı veya karışık kaynak ağaçları ile çalışıyor gibi görünüyor. Neden scala ve java'yı aynı dizinde birleştirmeyi öneriyorsunuz? – Shane

+0

Çünkü eklentinin çalışması bu şekilde değil. Bunu işe yaratabilirseniz, bu bizi bilgilendirir. Ama benim önerim her zaman akış ile gitmek olacak ... – sourcedelica

+0

Neden aynı dizinde java ve scala kodu koymak için iyi bir fikir değil mi? – gosua